【发布时间】:2011-06-14 17:55:56
【问题描述】:
我有一个在刷新 ApplicationContext 时被销毁的单例 bean。这个 bean 是会话注册表,它跟踪会话(duh)。在我的应用程序初始配置后,我使用来自 ApplicationContext 的刷新来获取新配置。但是,由于会话本身尚未结束,因此不应销毁 SessionRegistry。因此,我需要将 SessionRegistry 排除在 ApplicationContext 刷新造成的肆意破坏之外。有没有一种相当简单的方法可以做到这一点,或者我必须实现我自己的 ApplicationContext 版本,并重新编码它的方法?
编辑:所以我最终做的是覆盖 sessionregistry 以创建一个真正的单例,从会话注册表中获取所有会话,从 applicationcontext 中删除 sessionregistry 作为侦听器,然后在 sessionregistry 之后重新添加会话已重新创建。
【问题讨论】:
-
为什么以及何时刷新您的上下文?
-
在(重新)配置后会刷新。
标签: java spring singleton refresh