前面写过一篇文章,提到了配置springboot监听器,也能正常的监听springboot启动。但是存在一个问题,就是,如果想要在bean初始化的时候使用监听器中获取的配置的时候,这种方式不能实现。
想要实现在springboot启动后,bean初始化之前监听,需要做如下的改变:
改变一下监听事件类型即可
public class PropertyListener implements ApplicationListener<ApplicationPreparedEvent> {
...
}
只要实现的ApplicationPreparedEvent事件监听,就可以实现在springboot启动后、bean初始化之前监听。
此时,需要在SpringApplication中添加监听器
SpringApplication springApplication =new SpringApplication(DemoApplication.class);
springApplication.addListeners(new PropertyListener());
springApplication.run(args);
这种方式有一个缺点,就是不能在单元测试中使用监听器!不能在单元测试中使用监听器!不能在单元测试中使用监听器!
重要的事情说三遍!!!