Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 使用application.properties中的SpEL根据另一个属性填充属性_Spring_Properties File_Spring El - Fatal编程技术网

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

这个答案对你有用吗?谢谢你的回答,请看下面我的答案。