SpringBoot中ApplicationListener使用

1. 实现自定义的ApplicationListener

自定义监听器需要实现ApplicationListener接口,实现对应的方法来完成自己的业务逻辑。
SpringBoot Application共支持6种事件监听,按顺序分别是:

  • ApplicationStartingEvent:在Spring最开始启动的时候触发
  • ApplicationEnvironmentPreparedEvent:在Spring已经准备好上下文但是上下文尚未创建的时候触发,可加载一些属性
  • ApplicationPreparedEvent:在Bean定义加载之后、刷新上下文之前触发
  • ApplicationStartedEvent:在刷新上下文之后、调用application命令之前触发
  • ApplicationReadyEvent:在调用applicaiton命令之后触发
  • ApplicationFailedEvent:在启动Spring发生异常时触发

注意:

  1. ApplicationRunner和CommandLineRunner的执行在第五步和第六步之间
  2. Bean的创建在第三步和第四步之间
  3. 在启动类中,执行SpringApplication.run()方法后的代码,会在第六步后执行

2. 使用场景

  1. 我们在业务场景中可能会使用到rabbitmq或者kafka等消息队列,一般我们要求在服务启动的时候就将一些配置,topic等信息加载完成,并连接上kafka。这个时候我们就可以通过实现 2. ApplicationListener来进行,这个阶段Bean已经创建完毕,可以拿到对应autowired的对象来进行相关逻辑处理;
  2. 再比如,我们需要校验某些环境,配置是否满足,如果不满足就退出程序也可以在监听器中实现;
  3. 常见的数据库连接;
  4. 特定定时任务的执行。

你可能感兴趣的:(SpringBoot中ApplicationListener使用)