动态更新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定义中获得一些想法? 。 其他好的链接也可以在谷歌上找到。