两种方法:
方法一:
使用注解
编写Listener,并使用@WebListener注解标记,在启动类使用注解:@ServletComponentScan
package clc.user.listener; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.annotation.WebListener; /** * ClassName: FirstListener<br/> * Description: <br/> * date: 2019/4/2 11:04 AM<br/> * * @author chengluchao * @since JDK 1.8 */ @WebListener public class FirstListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { System.out.println("FirstListener-contextInitialized"); } @Override public void contextDestroyed(ServletContextEvent sce) { System.out.println("FirstListener-contextDestroyed"); } }
启动类
@SpringBootApplication @ServletComponentScan public class UserServiceApplication { public static void main(String[] args) { SpringApplication.run(UserServiceApplication.class, args); } }
方法二:
在启动类使用java代码配置
package clc.user.listener; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.annotation.WebListener; /** * ClassName: SecondListener<br/> * Description: <br/> * date: 2019/4/2 11:04 AM<br/> * * @author chengluchao * @since JDK 1.8 */ public class SecondListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { System.out.println("SecondListener-contextInitialized"); } @Override public void contextDestroyed(ServletContextEvent sce) { System.out.println("SecondListener-contextDestroyed"); } }
启动类:
@SpringBootApplication public class UserServiceApplication2 { @Bean public ServletListenerRegistrationBean getServletListenerRegistrationBean() { ServletListenerRegistrationBean listener = new ServletListenerRegistrationBean(new SecondListener()); return listener; } public static void main(String[] args) { SpringApplication.run(UserServiceApplication2.class, args); } }
原文:https://www.cnblogs.com/chenglc/p/10641491.html