如何重新初始化Spring Bean?

时间:2018-07-06 21:56:26

标签: java spring spring-boot spring-bean

是否可以在运行时重新初始化Spring Bean?

我的Bean使用静态设置,在某些情况下会更改,然后我必须重新初始化Bean。

1 个答案:

答案 0 :(得分:3)

您可以通过三种方法在春季上下文中更新单例bean,可以选择一种适合您的用例:

在Bean中重新加载方法
在bean中创建一个方法,该方法将更新/重新加载其属性。根据您的触发器,从spring上下文访问bean,然后调用reload方法更新bean属性(自单例以来),它也将在spring上下文中以及在自动装配/注入的任何地方进行更新。

在注册表中删除并注册Bean
您可以使用app.use('/', inscription); 删除并重新注册您的bean。唯一的缺点是,它不会刷新/重新加载消费者类中已经自动接线/注入的Bean的旧实例。

DefaultSingletonBeanRegistry

@RefreshScope
可用于从配置更改中刷新bean值属性。但是它具有非常有限的特定目的。 Resource了解更多信息。