https://baijiahao.baidu.com/s?id=1572461067170234&wfr=spider&for=pc
https://blog.csdn.net/zhichao_qzc/article/details/80673026
如果在SpringBoot應用啓動的時候需要執行特定的動作,可以利用ApplicationRunner接口 或者 CommandLineRunner接口。實現了這些接口的Component會在所有Spring Beans都初始化之後,SpringApplication.run()之前執行,即在控制檯看Spring啓動加載出現初始化完成時間之前執行。此時已經可以ApplicationRunner或CommandLineRunner使用@Autowired注入其他的Bean,非常適合在應用程序啓動之初進行一些數據初始化的工作。
準備3個類來驗證下啓動時的執行順序。
第1個類是Controller類,我們定義一般不需要的構造方法,並輸出一條日誌
第2個類是CommandLineRunner類,通過@Order標記執行順序爲1,在run方法裏面輸出日誌
第3個類是CommandLineRunner類,通過@Order標記執行順序爲2,在run方法裏面輸出日誌
執行SpringApplication.run,查看console中的輸出日誌,CommandLineRunner的日誌會按照Order從小到大執行,並且在Spring Beans初始化之後執行。