【Spring Boot 源码学习】SpringApplication 的 run 方法监听器
在Spring Boot中,可以通过实现ApplicationListener
接口来创建自定义的监听器,监听Spring应用上下文的生命周期事件。
以下是一个简单的示例,展示如何创建一个监听器来监听Spring应用的启动和停止事件:
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextClosedEvent;
import org.springframework.context.event.ContextRefreshedEvent;
public class CustomStartupShutdownListener implements ApplicationListener<Object> {
@Override
public void onApplicationEvent(Object event) {
if (event instanceof ContextRefreshedEvent) {
// 应用上下文已经刷新完成,所有的beans都已经加载且预处理完毕
// 这里可以执行一些启动时的操作
System.out.println("Spring应用上下文已经启动完成...");
} else if (event instanceof ContextClosedEvent) {
// 应用上下文被关闭
// 这里可以执行一些停止时的操作
System.out.println("Spring应用上下文被关闭...");
}
}
}
然后,在Spring Boot的主类中注册这个监听器:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
@Bean
public CustomStartupShutdownListener startupShutdownListener() {
return new CustomStartupShutdownListener();
}
}
当Spring Boot应用启动时,会输出"Spring应用上下文已经启动完成...",而当应用关闭时,会输出"Spring应用上下文被关闭..."。
评论已关闭