spring用@value注解取得的值被保存在了哪里,能否被修改,现在有一个问题需要动态的更改spring用@value注解从properties中取得的值,有什么好的建议吗?

解决方案 »

  1.   


    @value("${name}")
    private String name;首先你要明白,spring加载properties后,在创建bean根据@value注解注入properties的值,即使properties有保存起来假如这个对象叫prop,你修改prop的键值,对象中的属性也不会跟着变啊,bean只会初始化拿一次prop中数据,以后都不拿了,就是对象创建好了,就不要想@value这个注解了,改就直接改这个属性呗
      

  2.   

    @Value的值只是Spring容器从application.properties文件中读取到的值,想动态修改,只能是在通过@Value获取到对应值后做动态修改。
      

  3.   

    用java的反射去改