github地址:https://github.com/zhuquanwen/springboot-filter-listener-samples.git
1、在启动类注册
import org.springframework.boot.context.event.ApplicationStartedEvent;
import org.springframework.context.ApplicationListener;
/**
*
* @author zhuquanwen
* @vesion 1.0
* @date 2021/1/28 20:41
* @since jdk1.8
*/
public class Listener1 implements ApplicationListener<ApplicationStartedEvent> {
@Override
public void onApplicationEvent(ApplicationStartedEvent event) {
System.out.println("======监听器1执行======");
}
}
package com.iscas.springboot.samples;
import com.iscas.springboot.samples.listener.Listener1;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
*
* @author zhuquanwen
* @vesion 1.0
* @date 2021/1/24 19:28
* @since jdk1.8
*/
@SpringBootApplication
@RestController
@ServletComponentScan
public class App {
public static void main(String[] args) {
SpringApplication springApplication = new SpringApplication(App.class);
springApplication.addListeners(new Listener1());
springApplication.run(args);
}
@GetMapping("/test")
public String test() {
return "test";
}
}
2、使用@Component注册
package com.iscas.springboot.samples.listener;
import org.springframework.boot.context.event.ApplicationStartedEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;
/**
*
* @author zhuquanwen
* @vesion 1.0
* @date 2021/1/28 20:41
* @since jdk1.8
*/
@Component
public class Listener2 implements ApplicationListener<ApplicationStartedEvent> {
@Override
public void onApplicationEvent(ApplicationStartedEvent event) {
System.out.println("======监听器2执行======");
}
}
3、使用WebListener注册
package com.iscas.springboot.samples.listener;
import org.springframework.boot.context.event.ApplicationStartedEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
/**
*
* @author zhuquanwen
* @vesion 1.0
* @date 2021/1/28 20:41
* @since jdk1.8
*/
@WebListener
public class Listener3 implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("======监听器3执行========");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
}
}
4、在配置文件注册
package com.iscas.springboot.samples.listener;
import org.springframework.boot.context.event.ApplicationStartedEvent;
import org.springframework.context.ApplicationListener;
/**
*
* @author zhuquanwen
* @vesion 1.0
* @date 2021/1/28 20:41
* @since jdk1.8
*/
public class Listener4 implements ApplicationListener<ApplicationStartedEvent> {
@Override
public void onApplicationEvent(ApplicationStartedEvent event) {
System.out.println("======监听器4执行======");
}
}
context.listener.classes=com.iscas.springboot.samples.listener.Listener4
5、使用@EventListener注册
package com.iscas.springboot.samples.listener;
import org.springframework.boot.context.event.ApplicationStartedEvent;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
/**
*
* @author zhuquanwen
* @vesion 1.0
* @date 2021/1/28 20:41
* @since jdk1.8
*/
@Component
public class Listener5 {
@EventListener
public void evendListener(ApplicationStartedEvent event){
System.out.println("======监听器5执行========");
}
}