国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【SpringBoot】 啟動(dòng)后執(zhí)行方法的五種方式

這篇具有很好參考價(jià)值的文章主要介紹了【SpringBoot】 啟動(dòng)后執(zhí)行方法的五種方式。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在 SpringBoot 工程 啟動(dòng)后, 執(zhí)行方法的五種方式:

1、實(shí)現(xiàn) CommandLineRunner 接口

項(xiàng)目初始化完畢后,才會(huì)調(diào)用方法,提供服務(wù)

@Component
public class StartInit2 implements CommandLineRunner {

    @Override
    public void run(String... args) throws Exception {
        System.out.println("CommandLineRunner====================");
    }
}

2、實(shí)現(xiàn) ApplicationRunner 接口

同 CommandLineRunner。只是傳參格式不一樣。CommandLineRunner:沒有任何限制;ApplicationRunner:key-value

@Component
public class StartInit3 implements ApplicationRunner {

    @Override
    public void run(ApplicationArguments args) {
        System.out.println("ApplicationRunner=================");
    }
}

3、實(shí)現(xiàn) ApplicationListener 接口

項(xiàng)目初始化完畢后,才會(huì)調(diào)用方法,提供服務(wù)。注意監(jiān)聽的事件,通常是 ApplicationStartedEvent 或者 ApplicationReadyEvent,其他的事件可能無法注入 bean。

@Component
public class StartInit4 implements ApplicationListener<ApplicationStartedEvent> {

    @Override
    public void onApplicationEvent(ApplicationStartedEvent event) {
        System.out.println("ApplicationListener================ApplicationStartedEvent");
    }
}
  • 如果監(jiān)聽的是 ApplicationStartedEvent 事件,則 ApplicationListener 一定會(huì)在 CommandLineRunner 和 ApplicationRunner 之前執(zhí)行;
  • 如果監(jiān)聽的是 ApplicationReadyEvent 事件,則 ApplicationListener 一定會(huì)在 CommandLineRunner 和 ApplicationRunner 之后執(zhí)行;

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

原理:

  1. SpringApplication 的run方法會(huì)執(zhí)行afterRefresh方法。
  2. afterRefresh方法會(huì)執(zhí)行callRunners方法。
  3. callRunners方法會(huì)調(diào)用所有實(shí)現(xiàn)ApplicationRunner和CommondLineRunner接口的方法callRunners方法會(huì)調(diào)用所有實(shí)現(xiàn)ApplicationRunner和CommondLineRunner接口的方法

4、@PostConstruct 注解

在項(xiàng)目初始化過程中,就會(huì)調(diào)用此方法。如果業(yè)務(wù)邏輯執(zhí)行很耗時(shí),可能會(huì)導(dǎo)致項(xiàng)目啟動(dòng)失敗。

@Component
public class StartInit {

    @PostConstruct
    public void init() {
        System.out.println("@PostConstruct===============================");
    }

}

5、實(shí)現(xiàn) InitializingBean 接口

項(xiàng)目啟動(dòng)時(shí),調(diào)用此方法文章來源地址http://www.zghlxwxcb.cn/news/detail-404064.html

@Component
public class StartInit6 implements InitializingBean {

    @Override
    public void afterPropertiesSet() {
        System.out.println("InitializingBean====================");
    }

}

到了這里,關(guān)于【SpringBoot】 啟動(dòng)后執(zhí)行方法的五種方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 詳談SpringBoot啟動(dòng)項(xiàng)目后執(zhí)行自定義方法的方式

    這個(gè)是在所有啟動(dòng)后執(zhí)行,也是常用之一。 項(xiàng)目初始化完畢后才會(huì)調(diào)用方法,提供服務(wù)。好處是方法執(zhí)行時(shí),項(xiàng)目已經(jīng)初始化完畢,是可以正常提供服務(wù)的。 實(shí)現(xiàn) ApplicationRunner 接口和實(shí)現(xiàn) CommandLineRunner 接口基本是一樣的。不同的是啟動(dòng)時(shí)傳參的格式,CommandLineRunner 對(duì)于參數(shù)

    2024年02月10日
    瀏覽(17)
  • PHP的五種運(yùn)行方式

    PHP的五種運(yùn)行方式: 1、命令行方式:通過在 命令行終端中輸入 php 命令 ,可以執(zhí)行PHP腳本文件。這種方式常用于執(zhí)行獨(dú)立的PHP腳本,比如執(zhí)行一些批處理任務(wù)、定時(shí)任務(wù)等。 優(yōu)點(diǎn):靈活方便,可用于執(zhí)行獨(dú)立的PHP腳本,適合批處理任務(wù)和定時(shí)任務(wù)。 缺點(diǎn):需要手動(dòng)在命令

    2024年02月05日
    瀏覽(28)
  • 多線程的五種“打開”方式

    多線程的五種“打開”方式

    線程(Thread)是計(jì)算機(jī)科學(xué)中的一個(gè)基本概念,它是進(jìn)程(Process)中的一個(gè)執(zhí)行單元,負(fù)責(zé)執(zhí)行程序的指令序列。 線程是操作系統(tǒng)能夠進(jìn)行調(diào)度和執(zhí)行的最小單位。 在多任務(wù)操作系統(tǒng)中,多個(gè)線程可以在同一個(gè)進(jìn)程內(nèi)并發(fā)執(zhí)行,共享進(jìn)程的資源。 { 假設(shè)你正在廚房中準(zhǔn)備晚

    2024年02月10日
    瀏覽(23)
  • List集合的五種遍歷方式

    目錄 一、List五種遍歷方式 ?1、普通for遍歷 2、 增強(qiáng)for遍歷 ?3、Lambda表達(dá)式 ?4、迭代器遍歷 ?5、列表迭代器 方法 說明 迭代器遍歷 在遍歷的過程中需要?jiǎng)h除元素,請(qǐng)使用迭代器。 列表迭代器 在遍歷的過程中需要添加元素,請(qǐng)使用列表迭代器。 增強(qiáng)for遍歷 僅僅想遍歷,那

    2024年02月10日
    瀏覽(27)
  • Java遍歷Map的五種方式

    java中遍歷map一般有五種方法,從最早的Iterator,到j(luò)ava5支持的foreach,再到j(luò)ava8的Lambda表達(dá)式。 如果只是獲取key,或者value,推薦使用keySet或者values方式 如果同時(shí)需要key或者value推薦使用entrySet 如果需要在遍歷過程中刪除元素推薦使用Iterator 如果需要在遍歷過程中增加元素,可

    2024年02月03日
    瀏覽(26)
  • 微前端:qiankun的五種通信方式

    微前端:qiankun的五種通信方式

    今天盤點(diǎn)一下 qiankun 父子應(yīng)用的通信方式都有哪些,我發(fā)現(xiàn)了 5 種。 1、localStorage/sessionStorage 2、通過路由參數(shù)共享 3、官方提供的 props 4、官方提供的 actions 5、使用vuex或redux管理狀態(tài),通過shared分享 接下來我們一個(gè)一個(gè)進(jìn)行說明 有人說這個(gè)方案必須主應(yīng)用和子應(yīng)用是同一個(gè)

    2024年03月21日
    瀏覽(27)
  • 溫故知新—Activity的五種啟動(dòng)模式

    溫故知新—Activity的五種啟動(dòng)模式

    這兩天遇到了一個(gè) bug ,說是應(yīng)用打開一個(gè)二級(jí)頁面,然后直接回到桌面,并不是殺掉應(yīng)用,只是回到桌面,再次打開的時(shí)候沒有回到那個(gè)二級(jí)頁面,而是回到了首頁。 看到這里,很多人大概都知道是什么原因了,沒錯(cuò),就是 Activity 的啟動(dòng)模式設(shè)置為了 singleTask 而導(dǎo)致的問題

    2024年02月09日
    瀏覽(22)
  • 微信小程序傳參的五種方式

    微信小程序傳參的五種方式

    大家好,今天和大家分享一下微信小程序頁面之間傳參的五種方式,這個(gè)的話也是有人問了我一嘴,然后現(xiàn)在我和大家分享一下。 使用GPT搜索的話給我的答案是純文字的描述,但是大致就是這樣: URL參數(shù)傳遞:可以將參數(shù)直接拼接在頁面的URL中,在打開目標(biāo)頁面時(shí),通過獲

    2024年02月06日
    瀏覽(25)
  • Vue路由跳轉(zhuǎn)的五種方式

    Vue路由跳轉(zhuǎn)的五種方式

    路由跳轉(zhuǎn)有兩種形式:聲明式導(dǎo)航、編程式導(dǎo)航 1. router-link 聲明式 prop= :to=“…” 相當(dāng)與 router.push(…) router-link中鏈接如果是’ / \\\'開始,就是從根路由開始 如果開始不帶 ’ / \\\',則是從當(dāng)前路由開始 例子 2. this.$router.push() 可追溯 編程式 router.push(…)//該方法的參數(shù)可以是一個(gè)

    2024年02月05日
    瀏覽(40)
  • 前端傳遞對(duì)象,后臺(tái)接收對(duì)象的五種方式

    前端傳遞對(duì)象,后臺(tái)接收對(duì)象的方式主要有以下幾種: 使用 @RequestBody 注解 :在 Spring Boot 控制器方法中使用 @RequestBody 注解將請(qǐng)求體中的 JSON 數(shù)據(jù)映射為 Java 對(duì)象。 使用 @ModelAttribute 注解 :在 Spring Boot 控制器方法中使用 @ModelAttribute 注解將 URL 參數(shù)或表單數(shù)據(jù)映射為 Java 對(duì)象

    2024年02月06日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包