如果spring bean配置发生变化,有没有办法动态更新Spring bean?
E.g。假设我有一个布尔属性为x
的spring bean,并且应用程序启动时spring bean的值为true
。
因此spring创建了bean,其属性x
设置为true。
是否有办法让我将属性更改为x
(在应用程序运行时),该属性将被更新,例如到false
?
答案 0 :(得分:1)
调用x setX()
方法的setter将会这样做。
但它不应该是原型bean。
答案 1 :(得分:1)
可以使用jrebel - spring集成。它监视您的配置和TRIES以在运行时重新连接您的bean。
虽然我不会在制作中使用它...只是为了玩,测试等
答案 2 :(得分:0)
Spring在启动时读取配置文件。如果你真的需要在应用程序运行时更新配置,你应该手动实现所有链:检测配置更改,验证配置,检测更改的bean,在上下文中更新bean。
答案 3 :(得分:0)
可以使用applicationContext.xml或甚至以编程方式初始化Spring bean。在你的情况下;您需要从xml中删除配置并添加到java程序中。你可以从How to programmatically create bean definition with injected properties?得到一些想法。谷歌也有其他好的链接。