spring项目启动后进行初始化操作的方式
常用的两种,实现ApplicationRunner接口后重写run方法,实现ApplicationListener接口后监听对应的事件
- ApplicationRunner接口
所属机制为Spring Boot 启动回调接口,在run方法里写业务逻辑实现初始化操作,如数据加载、检查,用此方法,抛出异常后会启动失败,run方法执行时Web 服务器可能还未完全启动
- ApplicationListener接口
所属机制为Spring 事件驱动模型,基于 ApplicationEvent实现,和ApplicationRunner接口一样可以实现初始化操作,但是可以根据监听的ApplicationEvent事件来实现在runner之前或之后加载
在最新的springboot版本上,推荐使用@EventListenner注解来代替实现ApplicationListener接口,能实现相同的作用且支持更加丰富的功能
区分两者的区别并合理使用有助于springboot应用启动逻辑更健壮
ApplicationEvent有比较丰富的子类,ApplicationReadyEvent、RequestHandledEvent、ContextRefreshedEvent等,还可以实现自定义event事件

浙公网安备 33010602011771号