正如我们可以使用@Value批注读取属性一样,是否可以通过代码更改属性的值?
@Value("#{envProps['" + Keys.Env.updatedDate + "']}")
private String date;
在environment.properties中的值
updatedDate =2013-10-01
我想将该值更改为2013-10-16。怎么做?
谢谢
最佳答案
对不起,你不能那样做@Annotations
及其在Java中的值为constants
。@Annotations
在编译时存储在类文件(在RuntimeVisibleAnnotations
中)中。
它们的值可以是String,Class或其他值,并且不能在运行时更改。
见jvm class file spec
替代解决方案
使用类似的占位符
@Value("${updatedDate.envProps}")
private String date;
并编写自定义PropertyPlaceholderConfigurer将
updatedDate.envProps
解析为所需的值