欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot啟動時加載指定方法的方式小結

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

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

常用的方式有以下幾種:

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

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

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

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

2、CommandLineRunner 方式

CommandLineRunner 接口是Spring Boot提供的一個回調接口,可以在應用程序啟動后執(zhí)行特定的方法。您可以創(chuàng)建一個實現 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("應用程序啟動時執(zhí)行的方法");
    }
}

3、ApplicationRunner 方式

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

使用代碼如下:

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("應用程序啟動時執(zhí)行的方法");
    }
}

4、@PostConstruct 方式

@PostConstruct 注解是Java EE提供的一個標準注解,用于指定在構造函數執(zhí)行完畢后立即執(zhí)行的方法。在Spring Boot中,您可以在任何一個Bean中使用 @PostConstruct 注解來標記需要在啟動時執(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("應用程序啟動時執(zhí)行的方法");
    }
}

5、ApplicationListener 方式

ApplicationListener 是 Spring Framework 提供的一個接口,用于監(jiān)聽應用程序中的事件并執(zhí)行相應的邏輯。您可以實現 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("收到應用程序事件:" + event.toString());
    }
}

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

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

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

6、@EventListener 方式

@EventListener 注解可以用于監(jiān)聽 Spring 應用程序中的各種事件,包括啟動事件。當應用程序啟動時,帶有 @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) {
        // 在這里添加應用程序啟動時的邏輯
        System.out.println(" @EventListener 應用程序已啟動!" + event.toString());
    }
}

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

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

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

以上就是SpringBoot啟動時加載指定方法的方式小結的詳細內容,更多關于SpringBoot加載指定方法的資料請關注腳本之家其它相關文章!

相關文章

  • springMVC不掃描controller中的方法問題

    springMVC不掃描controller中的方法問題

    這篇文章主要介紹了springMVC不掃描controller中的方法問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Spring加載XSD文件發(fā)生錯誤的解決方法

    Spring加載XSD文件發(fā)生錯誤的解決方法

    這篇文章主要介紹了Spring加載XSD文件發(fā)生錯誤的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • 實例解析Java設計模式編程中的適配器模式使用

    實例解析Java設計模式編程中的適配器模式使用

    適配器模式的主要作用是在新接口和老接口之間進行適配,通過將一個類的接口轉換成客戶期望的另一個接口,讓原本不兼容的接口可以合作無間,本文以實例解析Java設計模式編程中的適配器模式使用,需要的朋友可以參考下
    2016-05-05
  • 基于Jackson實現API接口數據脫敏的示例詳解

    基于Jackson實現API接口數據脫敏的示例詳解

    用戶的一些敏感數據,例如手機號、郵箱、身份證等信息,在數據庫以明文存儲,但在接口返回數據給瀏覽器(或三方客戶端)時,希望對這些敏感數據進行脫敏,所以本文就給大家介紹以惡如何利用Jackson實現API接口數據脫敏,需要的朋友可以參考下
    2023-08-08
  • Java代碼是如何被CPU狂飆起來的

    Java代碼是如何被CPU狂飆起來的

    無論是剛剛入門Java的新手還是已經工作了的老司機,恐怕都不容易把Java代碼如何一步步被CPU執(zhí)行起來這個問題完全講清楚。本文就帶你詳細了解Java代碼到底是怎么運行起來的。感興趣的同學可以參考閱讀
    2023-03-03
  • MyBatis整合Redis實現二級緩存的示例代碼

    MyBatis整合Redis實現二級緩存的示例代碼

    這篇文章主要介紹了MyBatis整合Redis實現二級緩存的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • Java實現提取不重復的整數實例

    Java實現提取不重復的整數實例

    這篇文章主要介紹了Java實現提取不重復的整數實例,具有一定借鑒價值,需要的朋友可以參考下
    2017-12-12
  • SpringBoot使用RestTemplate實現HTTP請求詳解

    SpringBoot使用RestTemplate實現HTTP請求詳解

    這篇文章主要為大家詳細介紹了SpringBoot如何使用RestTemplate實現進行HTTP請求,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-03-03
  • 詳解SpringCloud mysql實現配置中心

    詳解SpringCloud mysql實現配置中心

    這篇文章主要介紹了詳解SpringCloud mysql實現配置中心,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • Scala中如何中斷循環(huán)詳解

    Scala中如何中斷循環(huán)詳解

    在Scala中,可以使用break和continue語句來中斷循環(huán)。break語句可以在滿足某個條件時中斷循環(huán),而continue語句可以在滿足某個條件時跳過當前循環(huán)迭代,直接執(zhí)行下一次迭代
    2023-04-04

最新評論