亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Springboot啟動后執(zhí)行方法小結(jié)

 更新時間:2023年04月17日 09:37:25   作者:鶴沖天Pro  
本文主要介紹了Springboot啟動后執(zhí)行方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、注解@PostConstruct

使用注解@PostConstruct是最常見的一種方式,存在的問題是如果執(zhí)行的方法耗時過長,會導(dǎo)致項目在方法執(zhí)行期間無法提供服務(wù)。

@Component
public class StartInit {
//
// ? ?@Autowired ? 可以注入bean
// ? ?ISysUserService userService;

? ? @PostConstruct
? ? public void init() throws InterruptedException {
? ? ? ? Thread.sleep(10*1000);//這里如果方法執(zhí)行過長會導(dǎo)致項目一直無法提供服務(wù)
? ? ? ? System.out.println(123456);
? ? }
}

二、CommandLineRunner接口

實現(xiàn)CommandLineRunner接口 然后在run方法里面調(diào)用需要調(diào)用的方法即可,好處是方法執(zhí)行時,項目已經(jīng)初始化完畢,是可以正常提供服務(wù)的。

同時該方法也可以接受參數(shù),可以根據(jù)項目啟動時: java -jar demo.jar arg1 arg2 arg3 傳入的參數(shù)進行一些處理。

@Component
public class CommandLineRunnerImpl implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        System.out.println(Arrays.toString(args));
    }
}

三、實現(xiàn)ApplicationRunner接口

實現(xiàn)ApplicationRunner接口和實現(xiàn)CommandLineRunner接口基本是一樣的。

唯一的不同是啟動時傳參的格式,CommandLineRunner對于參數(shù)格式?jīng)]有任何限制,ApplicationRunner接口參數(shù)格式必須是:–key=value

@Component
public class ApplicationRunnerImpl implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
        Set<String> optionNames = args.getOptionNames();
        for (String optionName : optionNames) {
            List<String> values = args.getOptionValues(optionName);
            System.out.println(values.toString());
        }
    }
}

四、實現(xiàn)ApplicationListener

實現(xiàn)接口ApplicationListener方式和實現(xiàn)ApplicationRunner,CommandLineRunner接口都不影響服務(wù),都可以正常提供服務(wù),注意監(jiān)聽的事件,通常是ApplicationStartedEvent 或者ApplicationReadyEvent,其他的事件可能無法注入bean。

@Component
public class ApplicationListenerImpl implements ApplicationListener<ApplicationStartedEvent> {
    @Override
    public void onApplicationEvent(ApplicationStartedEvent event) {
        System.out.println("listener");
    }
}

五、四種方式的執(zhí)行順序

注解方式@PostConstruct 始終最先執(zhí)行

如果監(jiān)聽的是ApplicationStartedEvent 事件,則一定會在CommandLineRunner和ApplicationRunner 之前執(zhí)行。

如果監(jiān)聽的是ApplicationReadyEvent 事件,則一定會在CommandLineRunner和ApplicationRunner 之后執(zhí)行。

CommandLineRunner和ApplicationRunner 默認(rèn)是ApplicationRunner先執(zhí)行,如果雙方指定了@Order 則按照@Order的大小順序執(zhí)行,大的先執(zhí)行。

到此這篇關(guān)于Springboot啟動后執(zhí)行方法小結(jié)的文章就介紹到這了,更多相關(guān)Springboot啟動后執(zhí)行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中實現(xiàn)WebSocket方法詳解

    Java中實現(xiàn)WebSocket方法詳解

    這篇文章主要介紹了Java中實現(xiàn)WebSocket方法詳解,WebSocket?是一種新型的網(wǎng)絡(luò)協(xié)議,它允許客戶端和服務(wù)器之間進行雙向通信,可以實現(xiàn)實時數(shù)據(jù)交互,需要的朋友可以參考下
    2023-07-07
  • 詳解Java-Jackson使用

    詳解Java-Jackson使用

    這篇文章主要介紹了Java-Jackson使用詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Java屬性文件操作之Properties與ResourceBundle詳解

    Java屬性文件操作之Properties與ResourceBundle詳解

    這篇文章主要介紹了Java屬性文件操作之Properties與ResourceBundle詳解,兩個類都可以讀取屬性文件中以key/value形式存儲的鍵值對,ResourceBundle讀取屬性文件時操作相對簡單,需要的朋友可以參考下
    2023-11-11
  • 淺談Spring IoC容器的依賴注入原理

    淺談Spring IoC容器的依賴注入原理

    這篇文章主要介紹了淺談Spring IoC容器的依賴注入原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Springboot?@Async多線程獲取返回值方式

    Springboot?@Async多線程獲取返回值方式

    這篇文章主要介紹了Springboot?@Async多線程獲取返回值方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 詳解Java中Collector接口的組成

    詳解Java中Collector接口的組成

    今天給大家?guī)淼氖顷P(guān)于Java基礎(chǔ)的相關(guān)知識,文章圍繞著Collector接口的組成展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Java面試崗常見問題之ArrayList和LinkedList的區(qū)別

    Java面試崗常見問題之ArrayList和LinkedList的區(qū)別

    ArrayList和LinkedList作為我們Java中最常使用的集合類,很多人在被問到他們的區(qū)別時,憋了半天僅僅冒出一句:一個是數(shù)組一個是鏈表。這樣回答簡直讓面試官吐血。為了讓兄弟們打好基礎(chǔ),我們通過實際的使用測試,好好說一下ArrayList和LinkedList的區(qū)別這道經(jīng)典的面試題
    2022-01-01
  • 兩分鐘解決IntelliJ IDEA中文亂碼問題(推薦)

    兩分鐘解決IntelliJ IDEA中文亂碼問題(推薦)

    這篇文章主要介紹了兩分鐘解決IntelliJ IDEA中文亂碼問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • 實例分析java對象的序列化和反序列化

    實例分析java對象的序列化和反序列化

    序列化 (Serialization)是將對象的狀態(tài)信息轉(zhuǎn)換為可以存儲或傳輸?shù)男问降倪^程。一般將一個對象存儲至一個儲存媒介,例如檔案或是記億體緩沖等。在網(wǎng)絡(luò)傳輸過程中,可以是字節(jié)或是XML等格式。而字節(jié)的或XML編碼格式可以還原完全相等的對象。這個相反的過程又稱為反序列化
    2018-09-09
  • spring boot 集成dubbo的示例演示

    spring boot 集成dubbo的示例演示

    這篇文章主要介紹了spring boot 集成dubbo的示例演示,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07

最新評論