Spring 使用application.properties中的SpEL根据另一个属性填充属性
这是Spring 使用application.properties中的SpEL根据另一个属性填充属性,spring,properties-file,spring-el,Spring,Properties File,Spring El,这是application.properties文件: myVar=${SOME_VAR:#{null}} result=myVar is #{myVar != null && myVar.length() > 0 ? '' : 'not'} populated 我试图得到的是,如果设置了环境变量SOME\u VAR(而不是空的),则属性result应该是myVar已填充,否则myVar未填充 我上面输入的代码不起作用(设置结果的行),我也尝试了{}和${}的不同组合,包
application.properties
文件:
myVar=${SOME_VAR:#{null}}
result=myVar is #{myVar != null && myVar.length() > 0 ? '' : 'not'} populated
我试图得到的是,如果设置了环境变量SOME\u VAR
(而不是空的),则属性result
应该是myVar已填充
,否则myVar未填充
我上面输入的代码不起作用(设置
结果的行),我也尝试了{}和${}的不同组合,包括包装myVar
,但到目前为止没有成功
正确的方法是什么?谢谢。如果您的成员变量是私有的,您将无法直接引用myVar字段。所以你应该把你的条件直接放在属性值上
请根据您的要求检查以下表达式
@Value("myVar is #{ '${SOME_VAR}' != null && '${SOME_VAR}'.trim().length() > 0 ? '' : 'not'} populated")
private String result;
{}是一种表达式语言功能,而${}是一种简单的属性占位符语法 我最后做了
result=myVar is #{'${SOME_VAR:#{null}}' != '#{null}' && '${SOME_VAR:#{null}}'.trim().length() > 0 ? '' : 'not'} populated
这个答案对你有用吗?谢谢你的回答,请看下面我的答案。