事件监听是观察者设计模式,在Spring中的应用非常广泛。这里以SpringBoot的事件-监听为例,来分析一下SpringBoot给我们提供的扩展点,
增加SpringApplicationRunListener
SpringApplicationRunListener,分为八个时间节点,分别是:开始启动、环境准备完成、上下文准备完成、上下文载入完成、启动完成、开始运行中、启动失败。每一个时间节点都可以感知应用的状态,做相应的处理!
1、增加SpringApplicationRunListener的实现类
public class DemoSpringApplicationRunListener implements SpringApplicationRunListener {
// 构造器是必须的,启动的时候会验证
public DemoSpringApplicationRunListener(SpringApplication application, String[] args) {
}
// 实现省略
2、resource增加META-INF/spring.factories
org.springframework.boot.SpringApplicationRunListener=\
com.alibaba.tmall.DemoSpringApplicationRunListener
3、启动的时候,DemoSpringApplicationRunListener会被注册进去
启动过程中的事件
ApplicationStartingEvent
ApplicationFailedEvent
ApplicationPreparedEvent
ApplicationReadyEvent
ApplicationEnvironmentPreparedEvent
如何使用
1、添加监听类
public class DemoApplicationStartingEventListener implements ApplicationListener<ApplicationStartingEvent> {
@Override
public void onApplicationEvent(ApplicationStartingEvent applicationStartingEvent) {
System.out.println(123 + "===========================");
}
}
2、spring.factories中添加
org.springframework.context.ApplicationListener=\
com.wwdz.mall.DemoApplicationStartingEventListener