动态更新spring bean。 可能吗?
如果spring bean配置发生变化,有没有办法动态更新Spring bean?
例如,假设我有一个布尔属性为x
的spring bean,并且应用程序启动时spring bean的值为true
。
因此spring创建了bean,其属性x
设置为true。
有没有办法,如果我将属性更改为x
(在应用程序运行时),属性将更新为例如false
?
调用x setX()
方法的setter就可以了。
但它不应该是原型bean。
jrebel -spring集成是可能的。 它监视您的配置,并在运行时重新连接Bean。
虽然我不会在生产中使用它…只是为了玩,测试等
Spring在启动时读取配置文件。 如果您确实需要在应用程序运行时更新配置,则应手动实现所有链:检测配置更改,validation配置,检测已更改的bean,更新上下文中的bean。
可以使用applicationContext.xml或甚至以编程方式初始化Spring bean。 在你的情况下; 您需要从xml中删除配置并添加到java程序中。 您可以从如何以编程方式创建具有注入属性的bean定义中获得一些想法? 。 其他好的链接也可以在谷歌上找到。