如何重新初始化Spring Bean?
是否可以在运行时重新初始化Spring Bean?
我的Bean使用静态设置,在某些情况下会更改,然后我必须重新初始化Bean。
回答:
你可以通过三种方法在spring上下文中更新单例bean,可以选择一种适合你的用例:
在Bean中重新加载方法在Bean中
创建一个方法,该方法将更新/重新加载其属性。根据你的触发器,从spring上下文访问bean,然后调用reload方法更新bean属性(自单例以来),它也将在spring上下文中以及在自动装配/注入的任何地方进行更新。
在注册表中删除并注册Bean
可以DefaultSingletonBeanRegistry
用来删除并重新注册Bean。这样做的唯一缺点是,它不会刷新/重新加载使用者类中已经自动接线/注入的Bean的旧实例。
DefaultSingletonBeanRegistry registry = (DefaultSingletonBeanRegistry) context.getBeanFactory();registry.destroySingleton({yourbean}) //destroys the bean object
registry.registerSingleton({yourbeanname}, {newbeanobject}) //add to singleton beans cache
@RefreshScope
用于刷新配置更改中的bean值属性。但是它具有非常有限的特定目的。参考资料,以了解更多信息。
以上是 如何重新初始化Spring Bean? 的全部内容, 来源链接: utcz.com/qa/436301.html