springboot中ApplicationRunner執(zhí)行順序問題小結(jié)
作用:ApplicationRunner是Spring Boot提供的一個接口,主要用于在Spring應(yīng)用完全啟動后執(zhí)行特定的初始化任務(wù)或邏輯,例如數(shù)據(jù)庫初始化、配置文件加載、緩存預(yù)熱等。
具體用法這里就不做詳細(xì)介紹了。
當(dāng)我們有多個ApplicationRunner,并且需要嚴(yán)格控制執(zhí)行順序的時候,可以使用注解:
@Order(9) // 數(shù)值越小執(zhí)行順序越靠前
示例,我們寫3個ApplicationRunner,加上@Order()注解,然后啟動項(xiàng)目觀察執(zhí)行順:
第一個:
@Slf4j @Order(1) // 數(shù)值越小執(zhí)行順序越靠前 @Component public class ARunner implements ApplicationRunner { /** * 項(xiàng)目啟動成功后執(zhí)行 * @param args */ @Override public void run(ApplicationArguments args) { log.info("項(xiàng)目啟動成功,執(zhí)行任務(wù)A"); try { }catch (Exception e){ log.error("執(zhí)行錯誤.", e); } } }
第二個:
@Slf4j @Order(99) // 數(shù)值越小執(zhí)行順序越靠前 @Component public class BRunner implements ApplicationRunner { @Override public void run(ApplicationArguments args) { log.info("項(xiàng)目啟動成功,執(zhí)行任務(wù)B"); try { }catch (Exception e){ log.error("執(zhí)行錯誤.", e); } } }
第三個:
@Slf4j @Order(9) // 數(shù)值越小執(zhí)行順序越靠前 @Component public class CRunner implements ApplicationRunner { @Override public void run(ApplicationArguments args) { log.info("項(xiàng)目啟動成功,執(zhí)行任務(wù)C"); try { }catch (Exception e){ log.error("執(zhí)行錯誤.", e); } } }
執(zhí)行結(jié)果:可以看到,執(zhí)行順序就是按照@Order()注解來執(zhí)行的,數(shù)值越小執(zhí)行順序越靠前。
到此這篇關(guān)于springboot中ApplicationRunner執(zhí)行順序問題小結(jié)的文章就介紹到這了,更多相關(guān)springboot ApplicationRunner執(zhí)行順序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java常用類庫StringBuffer,Runtime,日期操作類等類庫總結(jié)
這篇文章主要介紹了Java常用類庫StringBuffer,Runtime,日期操作類等類庫總結(jié),需要的朋友可以參考下2020-02-02Springboot Retry組件@Recover失效問題解決方法
在使用springboot的retry模塊時,你是否出現(xiàn)過@Recover注解失效的問題呢?不用擔(dān)心,這篇文章就來告訴你解決@Recover失效的辦法,需要的小伙伴可以參考一下2021-11-11

Java獲取漢字拼音的全拼和首拼實(shí)現(xiàn)代碼分享

Hibernate雙向多對多映射關(guān)系配置代碼實(shí)例

Java設(shè)計(jì)模式之觀察者模式_動力節(jié)點(diǎn)Java學(xué)院整理