1

就像我们可以使用@Value注解读取属性一样,有没有办法通过代码来改变属性的值呢?

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

environment.properties 中的值

     updatedDate =2013-10-01

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

谢谢

4

1 回答 1

0

对不起,你不能这样做

@Annotations它在 java 中的值是constants.

编译时存储在类文件(at)中@AnnotationsRuntimeVisibleAnnotations它们的值可以是字符串、类或其他值,并且不能在运行时更改。

查看jvm 类文件规范

替代解决方案

使用占位符,例如

   @Value("${updatedDate.envProps}")
   private String date;

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

于 2013-11-08T03:46:07.887 回答