标签:ServletContextEvent ServletContextListener SpringBoot -- Listener 监听器 import pub
常用的监听器接口
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
--监听reques
t对象中属性的改变
6.1 attributeAdded(ServletRequestAttributeEvent srae) -- 添加属性时执行
6.2 attributeReplaced(ServletRequestAttributeEvent srae) -- 修改属性时执行
6.3 attributeRemoved(ServletRequestAttributeEvent srae) -- 删除属性时执行
创建Listener的两种方式,ServletContextListener举例
1、通过注解的方式
创建一个类实现ServletContextListener
的接口,在这个类上加@WebListener
注解,并且在启动类加上@ServletComponentScan
注解,这样就完成了。如果要改变监听器监听的对象,比如监听session
对象,那就改成实现HttpSessionListener
接口就行了
监听器类:
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class ListenerDemo1 implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("进入监听器");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
}
}
启动类:
@SpringBootApplication
@ServletComponentScan
@MapperScan(basePackages = {"wwfww.warehouse.mapper"})//不加这句mapper依赖注入不进来
public class WarehouseApplication {
public static void main(String[] args) {
SpringApplication.run(WarehouseApplication.class, args);
}
}
控制台输出:
2、在启动类注册Listener
创建一个类实现ServletContextListener
接口,并且在启动类创建方法来注册就行了
监听器类:
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class ListenerDemo1 implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("进入监听器,方式二");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
}
}
启动类:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
import org.springframework.context.annotation.Bean;
import tk.mybatis.spring.annotation.MapperScan;
import wwfww.warehouse.aaaTest.listener.ListenerDemo1;
@SpringBootApplication
@MapperScan(basePackages = {"wwfww.warehouse.mapper"})//不加这句mapper依赖注入不进来
public class WarehouseApplication {
public static void main(String[] args) {
SpringApplication.run(WarehouseApplication.class, args);
}
/**
* 注册监听器Listener
*
* @return
*/
@Bean
public ServletListenerRegistrationBean get() {
ServletListenerRegistrationBean bean = new ServletListenerRegistrationBean(new ListenerDemo1());
return bean;
}
}
输出:
补充:如果实现接口,但是IDEA没有提示你实现接口里面的方法,如下:
接口里面可以看到有两个方法的
解决办法:
1、点击右键找到Generate
2、选择Override Methods
3、选择图中两个,点击OK就行了
监听器的应用场景
标签:ServletContextEvent,ServletContextListener,SpringBoot,--,Listener,监听器,import,pub 来源: https://blog.csdn.net/weixin_43085797/article/details/114490037
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。