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()注解,然后啟動項目觀察執(zhí)行順:
第一個:
@Slf4j
@Order(1) // 數(shù)值越小執(zhí)行順序越靠前
@Component
public class ARunner implements ApplicationRunner {
/**
* 項目啟動成功后執(zhí)行
* @param args
*/
@Override
public void run(ApplicationArguments args) {
log.info("項目啟動成功,執(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("項目啟動成功,執(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("項目啟動成功,執(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)文章
spring boot整合mybatis利用Mysql實現(xiàn)主鍵UUID的方法
這篇文章主要給大家介紹了關(guān)于spring boot整合mybatis利用Mysql實現(xiàn)主鍵UUID的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-03-03
使用Java代碼將IP地址轉(zhuǎn)換為int類型的方法
這篇文章主要介紹了使用Java代碼將IP地址轉(zhuǎn)換為int類型的方法,這也是各大計算機考試和ACM以及面試的常見基礎(chǔ)問題,需要的朋友可以參考下2015-08-08
SpringCloud中的熔斷監(jiān)控HystrixDashboard和Turbine示例詳解
HystrixDashboard是用于實時監(jiān)控Hystrix性能的工具,展示請求響應(yīng)時間和成功率等數(shù)據(jù),本文介紹了如何配置和使用HystrixDashboard和Turbine進行熔斷監(jiān)控,包括依賴添加、啟動類配置和測試流程,感興趣的朋友一起看看吧2024-09-09

