欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spring boot配置监听器listener

程序员文章站 2022-03-02 18:29:25
...

监听器有如下几类(参考:https://blog.csdn.net/m0_38075425/article/details/81164501
如果已经了解,可以直接看下面的干货。嘻嘻
1.ServletContextListener – 监听servletContext对象的创建以及销毁

1.1    contextInitialized(ServletContextEvent arg0)   -- 创建时执行

1.2    contextDestroyed(ServletContextEvent arg0)  -- 销毁时执行

2.HttpSessionListener – 监听session对象的创建以及销毁

2.2   sessionCreated(HttpSessionEvent se)   -- 创建时执行

2.2   sessionDestroyed(HttpSessionEvent se) -- 销毁时执行

3.ServletRequestListener – 监听request对象的创建以及销毁

3.1    requestInitialized(ServletRequestEvent sre) -- 创建时执行

3.2    requestDestroyed(ServletRequestEvent sre) -- 销毁时执行

4.ServletContextAttributeListener – 监听servletContext对象中属性的改变

4.1    attributeAdded(ServletContextAttributeEvent event) -- 添加属性时执行

4.2    attributeReplaced(ServletContextAttributeEvent event) -- 修改属性时执行

4.3    attributeRemoved(ServletContextAttributeEvent event) -- 删除属性时执行

5.HttpSessionAttributeListener --监听session对象中属性的改变

5.1    attributeAdded(HttpSessionBindingEvent event) -- 添加属性时执行

5.2    attributeReplaced(HttpSessionBindingEvent event) -- 修改属性时执行

5.3    attributeRemoved(HttpSessionBindingEvent event) -- 删除属性时执行

6.ServletRequestAttributeListener --监听request对象中属性的改变

6.1    attributeAdded(ServletRequestAttributeEvent srae) -- 添加属性时执行

6.2    attributeReplaced(ServletRequestAttributeEvent srae) -- 修改属性时执行

6.3    attributeRemoved(ServletRequestAttributeEvent srae) -- 删除属性时执行

以下是干货

监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。
在springboot中,创建一个监听器是很方便的,只需要根据需求实现上面的几种监听器的其中之一。然后在你创建的监听器加上注解@WebListener
注意:还要把监听器注册到spring中,加入 @Component 或者其他方式把你创建的监听器注册为spring的一个bean。

import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.annotation.WebListener;

/**
 * @Author: Galen
 * @Date: 2019/6/25-15:11
 * @Description:登陆监听器
 **/
@WebListener
@Component
public class LoginListener implements ServletRequestListener {

    @Override
    public void requestInitialized(ServletRequestEvent servletRequestEvent) {
        System.out.println("---------------------------->请求创建");
    }
    @Override
    public void requestDestroyed(ServletRequestEvent servletRequestEvent) {
        System.out.println("---------------------------->请求销毁");
    }
}

最后,在启动类加上注解@ServletComponentScan(basePackages = "com.apl.pgs.listener.*"),开启监听器。
basePackages =监听器的 包名+类名 。可以开启一个或多个。
这样,监听器就配置完成了,具体业务逻辑可以在监听器做处理了。