如何使用Spring更改任何环境属性值

时间:2013-11-07 08:37:54

标签: java spring

正如我们可以使用@Value注释读取属性一样,有没有办法通过代码更改属性的值?

@Value("#{envProps['" + Keys.Env.updatedDate + "']}")
  private String date;

environment.properties中的值

     updatedDate =2013-10-01

我想将值更改为2013-10-16。怎么做?

由于

1 个答案:

答案 0 :(得分:0)

对不起,你不能这样做

@Annotations及其在java中的值为constants

@Annotations在编译时存储在类文件(RuntimeVisibleAnnotations)中。 它们的值可以是String,Class或其他值,并且不能在运行时更改。

请参阅jvm class file spec

替代解决方案

使用像

这样的占位符
   @Value("${updatedDate.envProps}")
   private String date;

并编写自定义PropertyPlaceholderConfigurer以将updatedDate.envProps解析为您想要的值