如何解决如何防止单例bean被ApplicationContext刷新破坏
| 我有一个单例bean,在刷新ApplicationContext时将其销毁。该bean是会话注册表,用于跟踪会话(duh)。在最初配置我的应用程序之后,我使用ApplicationContext的刷新来获取新配置。但是,由于会话本身尚未结束,因此不应销毁SessionRegistry。因此,我需要从ApplicationContext的刷新所引起的肆意破坏中排除SessionRegistry。是否有一个相当简单的方法来执行此操作,还是必须实现自己的ApplicationContext版本并重新编码其方法? 编辑:所以我最终要做的是重写sessionregistry以使它成为真正的单例,从session注册表中获取所有会话,从applicationcontext中删除该listregistry作为列表器,然后在sessionsession重新创建后重新添加会话。解决方法
我猜您可以使用
@PreDestroy
方法将当前状态传输到static
字段,并在@PostConstruct
上读取该字段以恢复Bean数据。
请注意,在上下文中,spring bean是单例的。如果上下文消失,则Bean死亡。如果存在多个上下文,则Bean可以具有多个实例。因此,使用“ 1”表示“更单身”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。