是否可以从另一个变量
设置@Value
例如。
System properties : firstvariable=hello ,secondvariable=world
@Value(#{systemProperties['firstvariable'])
String var1;
现在我希望将var2
与var1
联系起来并依赖它,例如
@Value( var1 + #{systemProperties['secondvariable']
String var2;
public void message(){ System.out.printlng("Message : " + var2 );
答案 0 :(得分:6)
不,你不能这样做,否则你会得到The value for annotation attribute Value.value must be a constant expression
。
但是,您可以通过以下方式实现相同的目标
在你的属性文件中
firstvariable=hello
secondvariable=${firstvariable}world
然后将值读为
@Value("${secondvariable}")
private String var2;
System.out.println("Message : " + var2 )
的输出为Message : helloworld
。
答案 1 :(得分:1)
由于问题使用EL到期的预定义systemProperties变量 我的猜测是意思是使用java系统属性(例如-D选项)。
由于@value接受el表达式,您可以使用
@Value("#{systemProperties['firstvariable']}#systemProperties['secondvariable']}")
private String message;
你说
现在我想将var2与var1和。进行连接 依赖于它
请注意,在这种情况下,更改var2不会对邮件产生影响 初始化bean时设置了消息