Spring 3.5如何将HttpSessionEventPublisher添加到我的启动配置中

Ale*_*ndr 10 java spring spring-mvc

我想听会话生命周期事件.我读过关于添加的内容

<listener>
   <listener-class>
     org.springframework.security.web.session.HttpSessionEventPublisher
   </listener-class>
</listener>
Run Code Online (Sandbox Code Playgroud)

到web.xml.但我没有.我正在使用扩展SpringBootServletInitializer的类.我怎么能添加这个监听器?

axt*_*avt 16

你可以使用ServletListenerRegistrationBean:

@Bean
public ServletListenerRegistrationBean<HttpSessionEventPublisher> httpSessionEventPublisher() {
    return new ServletListenerRegistrationBean<HttpSessionEventPublisher>(new HttpSessionEventPublisher());
}
Run Code Online (Sandbox Code Playgroud)


Swa*_*raj 0

在扩展 SpringBootSelvletInitializer 的类中添加监听器可以如下完成。

    @Configuration
    public class Application extends SpringBootServletInitializer {

    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    SpringApplicationBuilder app=application.sources(Application.class, ComponentConfiguration.class);
    app.listeners(bootstrapContext.commandLineListener());
    return app;
}
Run Code Online (Sandbox Code Playgroud)

由于构建器类具有侦听器方法,该方法用于添加要注册的所有侦听器。SpringApplicationBuilder 的 Github 链接是http://goo.gl/EGj6jE

我认为这会解决你的问题。

斯瓦拉杰