Spring 将 属性 解析为字符串而不是另一个 属性
Spring parse property as String instead of another Property
我有一个现有的 属性 文件需要使用。在那里,我必须定义一个新的 属性 看起来像 - ${testText1}.${testText2}
我不想编辑这些属性,即当我实际获取这些值时,我想要 ${testText1}.${testText2} 而不是替换值。
所以我的 属性 文件看起来像 -
someProperty=${testText1}.${testText2}
现在,当我获取这个时:
@Value("${someProperty}")
private String myValue;
myValue 实际上应该包含字符串 - ${testText1}.${testText2}
而不是替换值。
我该怎么做?
您可以通过两种方式完成:
1.Define 新配置 class :
@Configuration
@ConfigurationProperties
public class SomePropertyConfig {
//name of the property from application.properties
private String someProperty;
public String getSomeProperty() {
return someProperty;
}
public void setSomeProperty(String someProperty) {
this.someProperty = someProperty;
}
}
之后你可以自动装配这个 bean
@Autowired
private SomePropertyConfig somePropertyConfig;
这样,目标属性就会被注入配置
- 如果您不介意更改 application.properties 文件,可以使用 spring 表达式语言。
application.properties
someProperty= #{'$'}{testText1}.#{'$'}{testText2}
我有一个现有的 属性 文件需要使用。在那里,我必须定义一个新的 属性 看起来像 - ${testText1}.${testText2}
我不想编辑这些属性,即当我实际获取这些值时,我想要 ${testText1}.${testText2} 而不是替换值。
所以我的 属性 文件看起来像 -
someProperty=${testText1}.${testText2}
现在,当我获取这个时:
@Value("${someProperty}")
private String myValue;
myValue 实际上应该包含字符串 - ${testText1}.${testText2}
而不是替换值。
我该怎么做?
您可以通过两种方式完成:
1.Define 新配置 class :
@Configuration
@ConfigurationProperties
public class SomePropertyConfig {
//name of the property from application.properties
private String someProperty;
public String getSomeProperty() {
return someProperty;
}
public void setSomeProperty(String someProperty) {
this.someProperty = someProperty;
}
}
之后你可以自动装配这个 bean
@Autowired
private SomePropertyConfig somePropertyConfig;
这样,目标属性就会被注入配置
- 如果您不介意更改 application.properties 文件,可以使用 spring 表达式语言。
application.properties
someProperty= #{'$'}{testText1}.#{'$'}{testText2}