在中提供默认值
application.properties
someProp=${SOME_ENV_VARIABLE:#{null}}像
@Value("${someProp})这样使用时,这将正确计算为null。首先,如果在处理
SOME_ENV_VARIABLE时未找到,
application.properties则其值将成为字符串文字“#{null}”。然后,将其
@Value评估
someProp为SpEL表达式,结果为
null。可以通过查看
Environmentbean
中的属性来验证实际值。
此解决方案利用
PlaceholderConfigurerSupport该类指定的默认值语法
可以通过properties属性为每个配置程序实例全局定义默认属性值,或者使用默认值分隔符(默认情况下为“:”并可以通过setValueSeparator(String)进行自定义)在逐个属性的基础上进行定义。
和Spring SpEL表达式模板。
来自Spring Boot docs关于外部化配置的信息
最后,尽管您可以在@Value中编写SpEL表达式,但不会从Application属性文件中处理此类表达式。



