05.SpringBoot整合Listener的两种方式


SpringBoot整合Listener的两种方式:

1.通过注解扫描完成Listener组件的注册

  1. 创建一个类实现 ServletContextListener (具体实现哪个Listener根据情况来判断)
  2. 在类上加入注解 @WebListener
  3. 重写 contextInitialized()contextDestroyed() 方法
  4. 编写启动类
  5. 增加注解 @ServletComponentScan
@WebListener
public class FirstListener implements ServletContextListener {
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
    }
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("Listener...init....");
    }
}



@SpringBootApplication
@ServletComponentScan
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class,args);
    }
}

2.通过方法完成Listener组件注册

  1. 创建一个类实现 ServletContextListener (具体实现哪个Listener根据情况来判断)
  2. 编写启动类
  3. 新增方法,方法类型为ServletListenerRegistrationBean<需要注册的Listener的类>
  4. 实例化ServletListenerRegistrationBean对象,构造时传入"需要注册的Listener的类"对象
  5. 返回该对象
  6. 该方法上加注解@Bean
@SpringBootApplication
public class App2 {
    public static void main(String[] args) {
        SpringApplication.run(App2.class, args);
    }

    /**
       * 用于注册Listener
     */
    @Bean
    public ServletListenerRegistrationBean<SecondListener> getServletListenerRegistrationBean(){
        ServletListenerRegistrationBean<SecondListener> srb = new ServletListenerRegistrationBean<SecondListener>(new SecondListener());
        return srb;
    }
}


原文链接:https://www.cnblogs.com/net-safe/p/13528137.html