微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何重新初始化Spring Bean?

如何解决如何重新初始化Spring 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?

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。