SpringBoot启动后执行代码的方式

1、CommandLineRunner

2、ApplicationRunner

对比:
1)ApplicationRunner可以解析出命令行参数
2)ApplicationRunner的run方法声明throws Exception,抛出异常会终止启动
3)都可以使用@Order来指定顺序,并且共享order顺序

3、ApplicationListener

    @Override
    public void onApplicationEvent(ApplicationReadyEvent applicationReadyEvent) {
        log.info("MyApplicationListener is started up");
    }
}

1)比本文其他的解决方案都后执行
2)@Order只与同类型的ApplicationListener来做排序

4、@PostConstruct

1)Spring 在创建完 bean之后 ,启动之前执行
2)可以使用@DependsOn 注解

5、InitializingBean

1)与 @PostConstruct 解决方案非常相似
2)顾名思义「在属性设置之后」,调用该方法时,该 bean 的所有属性已经被 Spring 填充。
3)比使用 @PostConstruct 更安全,因为使用@PostConstruct有可能@Autowired 字段未自动注入;但如果用构造函数注入,两者等效

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容