第一步:我们可以编写ApplicationPreparedEvent、ApplicationStartedEvent以及ApplicationReadyEvent三个事件的监听器,然后在这三个事件触发的时候打印一些日志来观察它们各自的切入点,比如: @Slf4j public class ApplicationPreparedEventListener implements ApplicationListener<ApplicationPreparedEvent> { @Override public void onAp...
第一步:我们可以编写ApplicationPreparedEvent、ApplicationStartedEvent以及ApplicationReadyEvent三个事件的监听器,然后在这三个事件触发的时候打印一些日志来观察它们各自的切入点,比如: 代码语言:javascript 复制 @Slf4jpublicclassApplicationPreparedEventListenerimplementsApplicationListener<ApplicationPreparedEvent>{@Overridepubli...
第一步:我们可以编写ApplicationPreparedEvent、ApplicationStartedEvent以及ApplicationReadyEvent三个事件的监听器,然后在这三个事件触发的时候打印一些日志来观察它们各自的切入点,比如: @Slf4j public class ApplicationPreparedEventListener implements ApplicationListener<ApplicationPreparedEvent> { @Override public void onAp...
事件触发:org.springframework.boot.context.event.ApplicationStartedEvent 事件触发:org.springframework.boot.context.event.ApplicationReadyEvent 1. 2. 自定义事件以及监听 定义事件 首先,我们需要定义一个时间(MyTestEvent),需要继承Spring的ApplicationEvent public class MyTestEvent extends ApplicationEvent { private...
一Spring boot运行时,会依次发送以下事件 1. ApplicationStartingEvent 2. ApplicationEnvironmentPreparedEvent:当Environment已经准备好,在context 创建前 3. ApplicationContextInitializedEvent:在ApplicationContext 创建和ApplicationContextInitializer都被调用后,但是bean definition没有被加载前 ...
1.ApplicationStartingEvent 当应用启动还没有进行任何处理时,在对所有的监听器做初始化的时候发送的事件 publicConfigurableApplicationContextrun(String...args){//记录服务启动事件StopWatchstopWatch=newStopWatch();stopWatch.start();ConfigurableApplicationContextcontext=null;Collection<SpringBootExceptionReporter>except...
SpringBoot Application共支持6种事件监听,按顺序分别是: ApplicationStartingEvent:在Spring最开始启动的时候触发 ApplicationEnvironmentPreparedEvent:在Spring已经准备好上下文但是上下文尚未创建的时候触发 ApplicationPreparedEvent:在Bean定义加载之后、刷新上下文之前触发 ...
在Spring Boot 2.0中对事件模型做了一些增强,主要就是增加了ApplicationStartedEvent事件,所以在2.0版本中所有的事件按执行的先后顺序如下: ApplicationStartingEvent ApplicationEnvironmentPreparedEvent ApplicationPreparedEvent ApplicationStartedEvent<= 新增的事件
主要发布了ApplicationStartedEvent, ApplicationReadyEvent事件, 以及启动失败异常处理, 发布启动失败事件 publicclassSpringApplication{publicConfigurableApplicationContextrun(String...args){StopWatchstopWatch=newStopWatch();stopWatch.start();ConfigurableApplicationContextcontext=null;Collection<SpringBootExceptionReporter>...
1.2 EventPublishingRunListener源码 EventPublishingRunListener是springboot的事件广播器, 内部封装了一个SimpleApplicationEventMulticaster对象, 用来发布springboot加载过程中的各个事件 事件源SpringApplication对象 事件SpringApplicationEvent对象 事件发布器是EventPublishingRunListener, 正在的事件发布器是其内部SimpleApplication...