动态更新spring bean。可能吗?

时间:2013-01-18 08:23:29

标签: java spring

如果spring bean配置发生变化,有没有办法动态更新Spring bean?

E.g。假设我有一个布尔属性为x的spring bean,并且应用程序启动时spring bean的值为true

因此spring创建了bean,其属性x设置为true。

是否有办法让我将属性更改为x(在应用程序运行时),该属性将被更新,例如到false

4 个答案:

答案 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?得到一些想法。谷歌也有其他好的链接。