如何在HttpSessionListener中获取Spring globalsession作用域bean(sessionDestroyed方法)

时间:2015-04-21 20:14:18

标签: java spring

全部。 我查看了网页,但没有找到适合我的解决方案。

我需要在会话被销毁之前从HttpSessionListener中的globalsession范围内的bean访问信息。

在检查会话属性后,我找到了一个解决方案,但看起来并不顺利:

MyBean myBean = httpSessionEvent.getSession().getAttribute("scopedTarget."+"myBeanImlp");

我也有单例bean,通过目标+代理包含会话bean,但是通过sessionDestroyedctx.getBean("mySingletonBean")中获取它们,会话bean的引用在它们内部是无效的(会话bean在{之前已被销毁} {1}}致电)

有没有人知道这个问题的正确解决方案?

我认为我们需要像sessionDestroyed这样的东西,但对于会话bean,我可以查看bean,准备好销毁并采取我需要的行动。

1 个答案:

答案 0 :(得分:0)

您可以尝试将会话侦听器定义为组件并注入ApplicationContext(或必需的bean),然后访问它。您可以查看How to inject dependencies into HttpSessionListener, using Spring?