gpt4 book ai didi

java - 如何获取包含占位符的属性的原始值?

转载 作者:搜寻专家 更新时间:2023-11-01 03:34:41 25 4
gpt4 key购买 nike

我正在尝试在我的一个 .properties 文件中定义以下属性:

personExpression=${person.surname}

然后由配置类读取:

@Configuration
public class TemplateConfig {
@Autowired
private Environment environment;

public String getPersonExpression() {
return environment.getProperty("personExpression");
}
}

但是这给出了异常(exception):

java.lang.IllegalArgumentException: Could not resolve placeholder 'person.surname' in string value "${person.surname}"

有没有办法让 getPersonExpression() 返回字符串文字 ${person.surname} 而无需尝试解析它?

最佳答案

要让它工作需要一些非常不直观的语法。

本质上,您必须将表达式分成两部分,并将整个内容包装在父 SpEL 表达式中以连接它们。

如果您将属性值更改为以下值,它应该可以工作:

personExpression=#{'$' + '{person.surname}'}

这是可行的,因为您将 $ 字符从 {person.surname} 中分离出来,因此 SpEL 不会尝试将其作为表达式求值,因为作为就其而言,您只是将两个字符串连接在一起。

关于java - 如何获取包含占位符的属性的原始值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34584498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com