最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot啟動時加載指定方法的方式小結(jié)

 更新時間:2023年08月03日 09:47:59   作者:激流丶  
本文主要給大家介紹了Spring Boot項目啟動時加載指定方法都有哪些方式的,文中給大家介紹了五種常用的方式,有詳細(xì)的代碼示例,具有一定的參考價值,需要的朋友可以參考下

1、Spring Boot啟動時加載指定方法都有哪些方式的?

常用的方式有以下幾種:

?? 1. 實現(xiàn) CommandLineRunner 接口或 ApplicationRunner 接口:這兩個接口提供了一個 run 方法,在應(yīng)用程序啟動后立即執(zhí)行。您可以在這個方法中編寫您希望在應(yīng)用程序啟動時執(zhí)行的代碼。

?? 2. 使用 @PostConstruct 注解:您可以將 @PostConstruct 注解添加到自定義類的方法上,該方法將在該類的實例被創(chuàng)建后立即執(zhí)行。這樣,您可以在該方法中編寫您希望在應(yīng)用程序啟動時執(zhí)行的代碼。

?? 3. 使用 ApplicationListener 接口:您可以實現(xiàn) ApplicationListener 接口,并監(jiān)聽 ApplicationStartedEvent 事件。當(dāng)應(yīng)用程序啟動時,該事件將被觸發(fā),您可以在監(jiān)聽器中編寫您的自定義邏輯。

?? 4. 使用 @EventListener 注解:您可以將 @EventListener 注解添加到自定義類的方法上,并指定要監(jiān)聽的事件類型。當(dāng)指定的事件發(fā)生時,該方法將被調(diào)用,您可以在其中編寫您的自定義邏輯。例如,您可以監(jiān)聽 ApplicationStartedEvent 事件。

2、CommandLineRunner 方式

CommandLineRunner 接口是Spring Boot提供的一個回調(diào)接口,可以在應(yīng)用程序啟動后執(zhí)行特定的方法。您可以創(chuàng)建一個實現(xiàn) CommandLineRunner 接口的類,并重寫 run 方法,在其中編寫需要在啟動時執(zhí)行的邏輯。

使用代碼如下:

package com.pany.camp.load;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
/**
 *
 * @description:  CommandLineRunner
 * @copyright: @Copyright (c) 2022 
 * @company: Aiocloud
 * @author: pany
 * @version: 1.0.0 
 * @createTime: 2023-07-06 21:54
 */
@Component
public class MyCommandLineRunner implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        // 在啟動時執(zhí)行的邏輯
        System.out.println("應(yīng)用程序啟動時執(zhí)行的方法");
    }
}

3、ApplicationRunner 方式

ApplicationRunner 接口與 CommandLineRunner 接口類似,也是Spring Boot提供的一個回調(diào)接口,用于在應(yīng)用程序啟動后執(zhí)行特定的方法。與 CommandLineRunner 不同的是, ApplicationRunner 的 run 方法接收一個 ApplicationArguments 對象,可以用于獲取應(yīng)用程序啟動參數(shù)。

使用代碼如下:

package com.pany.camp.load;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
/**
 *
 * @description:  ApplicationRunner
 * @copyright: @Copyright (c) 2022
 * @company: Aiocloud
 * @author: pany
 * @version: 1.0.0
 * @createTime: 2023-07-06 22:04
 */
@Component
public class MyApplicationRunner implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
        // 在啟動時執(zhí)行的邏輯
        System.out.println("應(yīng)用程序啟動時執(zhí)行的方法");
    }
}

4、@PostConstruct 方式

@PostConstruct 注解是Java EE提供的一個標(biāo)準(zhǔn)注解,用于指定在構(gòu)造函數(shù)執(zhí)行完畢后立即執(zhí)行的方法。在Spring Boot中,您可以在任何一個Bean中使用 @PostConstruct 注解來標(biāo)記需要在啟動時執(zhí)行的方法。

使用代碼如下:

package com.pany.camp.load;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
/**
 *
 * @description: PostConstruct
 * @copyright: @Copyright (c) 2022
 * @company: Aiocloud
 * @author: pany
 * @version: 1.0.0
 * @createTime: 2023-07-06 22:07
 */
@Component
public class MyPostConstruct {
    @PostConstruct
    public void init() {
        // 在啟動時執(zhí)行的邏輯
        System.out.println("應(yīng)用程序啟動時執(zhí)行的方法");
    }
}

5、ApplicationListener 方式

ApplicationListener 是 Spring Framework 提供的一個接口,用于監(jiān)聽?wèi)?yīng)用程序中的事件并執(zhí)行相應(yīng)的邏輯。您可以實現(xiàn) ApplicationListener 接口,并重寫 onApplicationEvent 方法來處理特定的事件。

使用代碼如下:

package com.pany.camp.load;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;
/**
 *
 * @description: ApplicationListener
 * @copyright: @Copyright (c) 2022 
 * @company: Aiocloud
 * @author: pany
 * @version: 1.0.0 
 * @createTime: 2023-07-06 22:09
 */
@Component
public class MyEventListener implements ApplicationListener<ApplicationEvent> {
    @Override
    public void onApplicationEvent(ApplicationEvent event) {
        // 在這里處理特定的事件邏輯
        System.out.println("收到應(yīng)用程序事件:" + event.toString());
    }
}

在上述示例中, MyEventListener 類實現(xiàn)了 ApplicationListener 接口,并指定了泛型參數(shù)為 ApplicationEvent ,表示監(jiān)聽所有類型的應(yīng)用程序事件。您可以根據(jù)實際需求,將泛型參數(shù)指定為特定的事件類型。

當(dāng)應(yīng)用程序觸發(fā)事件時, onApplicationEvent 方法會被調(diào)用,并傳入相應(yīng)的事件對象。您可以在該方法中編寫處理事件的邏輯。

要注意的是,為了讓 Spring Boot 自動注冊 MyEventListener ,需要將其標(biāo)記為 @Component 或使用其他方式將其納入 Spring 容器的管理范圍。

6、@EventListener 方式

@EventListener 注解可以用于監(jiān)聽 Spring 應(yīng)用程序中的各種事件,包括啟動事件。當(dāng)應(yīng)用程序啟動時,帶有 @EventListener 注解的方法會被自動觸發(fā)。

使用代碼如下:

package com.pany.camp.load;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
/**
 *
 * @description:  @EventListener
 * @copyright: @Copyright (c) 2022 
 * @company: Aiocloud
 * @author: pany
 * @version: 1.0.0 
 * @createTime: 2023-07-06 22:11
 */
@Component
public class MyEventListenerExample {
    @EventListener
    public void handleContextRefresh(ContextRefreshedEvent event) {
        // 在這里添加應(yīng)用程序啟動時的邏輯
        System.out.println(" @EventListener 應(yīng)用程序已啟動!" + event.toString());
    }
}

上述示例中, handleContextRefresh 方法被標(biāo)記為 @EventListener ,并指定了 ContextRefreshedEvent 類型的事件。當(dāng)應(yīng)用程序啟動并完成刷新時,該方法會被自動觸發(fā)。

您可以在 handleContextRefresh 方法中添加應(yīng)用程序啟動時需要執(zhí)行的邏輯。例如,您可以初始化一些數(shù)據(jù)、啟動定時任務(wù)等。

請注意,為了讓 Spring Boot 自動注冊 MyApplication 類中的事件監(jiān)聽器,需要將其標(biāo)記為 @SpringBootApplication 或使用其他方式將其納入 Spring 容器的管理范圍。

以上就是SpringBoot啟動時加載指定方法的方式小結(jié)的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot加載指定方法的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Idea 解決 Could not autowire. No beans of ''xxxx'' type found 的錯誤提示

    Idea 解決 Could not autowire. No beans of ''xxxx'' type found

    這篇文章主要介紹了Idea 解決 Could not autowire. No beans of 'xxxx' type found 的錯誤提示,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 使用Java SDK實現(xiàn)離線簽名

    使用Java SDK實現(xiàn)離線簽名

    這篇文章主要介紹了使用Java SDK實現(xiàn)離線簽名,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 解決SpringCloud Gateway采用OpenFeign遠(yuǎn)程調(diào)用失敗的問題

    解決SpringCloud Gateway采用OpenFeign遠(yuǎn)程調(diào)用失敗的問題

    在使用SpringCloud網(wǎng)關(guān)進(jìn)行統(tǒng)一鑒權(quán)和認(rèn)證過程中,通過OpenFeign遠(yuǎn)程調(diào)用鑒權(quán)服務(wù)器接口時可能會遇到遠(yuǎn)程調(diào)用失敗的問題,這通常是因為HttpMessageConverters沒有被正確注入到Spring容器中
    2024-09-09
  • SpringBoot接入支付寶支付的方法步驟

    SpringBoot接入支付寶支付的方法步驟

    這篇文章主要介紹了SpringBoot接入支付寶支付的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Java編程偽共享與緩存行填充

    Java編程偽共享與緩存行填充

    這篇文章主要介紹了Java編程偽共享與緩存行填充,下面文章Disruptor提到的CPU緩存話題,做了一些嘗試和研究,如Disruptor所說,CPU有緩存?zhèn)喂蚕淼膯栴},并且通過緩存行填充能完美的解決這個問題,需要的朋友可以參考一下
    2021-09-09
  • java中優(yōu)化大量if...else...方法總結(jié)

    java中優(yōu)化大量if...else...方法總結(jié)

    在我們平時的開發(fā)過程中,經(jīng)??赡軙霈F(xiàn)大量If else的場景,代碼顯的很臃腫,非常不優(yōu)雅,下面這篇文章主要給大家介紹了關(guān)于java中優(yōu)化大量if...else...方法的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • Java使用DateTimeFormatter格式化輸入的日期時間

    Java使用DateTimeFormatter格式化輸入的日期時間

    這篇文章主要介紹了Java使用DateTimeFormatter格式化輸入的日期時間,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Java運算符解密之位運算、移位運算舉例詳解

    Java運算符解密之位運算、移位運算舉例詳解

    這篇文章主要介紹了Java運算符解密之位運算、移位運算的相關(guān)資料,Java中的位運算符包括按位與&、按位或|、按位取反~和按位異或^,用于對數(shù)據(jù)的二進(jìn)制位進(jìn)行操作,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • J2ME編程中的幾個重要概念介紹

    J2ME編程中的幾個重要概念介紹

    本文介紹的是J2ME編程應(yīng)用平臺中的幾個重要概念,希望對你有幫助,一起來看。
    2015-09-09
  • spring mvc中的@PathVariable獲得請求url中的動態(tài)參數(shù)

    spring mvc中的@PathVariable獲得請求url中的動態(tài)參數(shù)

    本文主要介紹了spring mvc中的@PathVariable獲得請求url中的動態(tài)參數(shù)的代碼。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02

最新評論

专栏| 两当县| 沂源县| 德江县| 历史| 高邑县| 白银市| 手机| 麻城市| 洪泽县| 平遥县| 庄浪县| 保靖县| 馆陶县| 扶风县| 泗阳县| 山西省| 岑溪市| 崇礼县| 伊川县| 黔南| 大渡口区| 济源市| 澎湖县| 罗甸县| 乳源| 鄂州市| 太白县| 新民市| 蓬溪县| 西乌| 通许县| 陆良县| 库车县| 深州市| 瑞安市| 九江县| 拉孜县| 闵行区| 临颍县| 拉萨市|