我需要用一些值初始化每个新的http会话。我怎么做?
我尝试在@PostConstruct中创建一个会话范围的组件并初始化会话,但是在我请求访问它们之前,不会急切地创建会话范围的bean。
答案 0 :(得分:3)
如果您完全确定需要急切初始化,则可以执行以下操作:
为该拦截器定义<lookup-method>
:
<lookup-method name="getCurrentSessionBean"
bean="yourSessionBeanToInitialize"/>
使用abstract
方法abstract
getCurrentSessionBean()
initialized
@PostConstruct
并备用initizlied
标志另一种选择是:
HttpSessionListener
(如果使用servlet 3.0,则使用注释)WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext)
获取上下文getBean(..)
以获取会话范围的bean的实例@PostConstruct
进行初始化第一个选项是“更多弹簧”,第二个选项更容易实现。