介绍
SpringBoot 为 ApplicationContextEvent 提供了四种事件:
- ApplicationStartedEvent :spring boot 启动开始时执行的事件
- ApplicationEnvironmentPreparedEvent:spring boot 对应 Enviroment 已经准备完毕,但此时上下文 context 还没有创建
- ApplicationPreparedEvent:spring boot 上下文 context 创建完成,但此时 spring 中的 bean 是没有完全加载完成的
- ApplicationFailedEvent:spring boot启动异常时执行事件
ApplicationEnvironmentPreparedEvent事件监听
1 | import lombok.extern.slf4j.Slf4j; |
这里要注意注册
ApplicationEnvironmentPreparedEvent
监听器的方式
如果是 jar 环境部署
1 | import org.springframework.boot.autoconfigure.SpringBootApplication; |
或者
1 | import org.springframework.boot.autoconfigure.SpringBootApplication; |
如果是 war 环境部署
1 | import org.springframework.boot.autoconfigure.SpringBootApplication; |
Junit 测试
测试单元下,自定义事件不生效的问题
1 | .class) (SpringJUnit4ClassRunner |