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