Spring Boot 整合 Listener

两种方法:

 方法一:

  使用注解

编写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