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

SpringBoot項目啟動時執(zhí)行指定的方法

 更新時間:2025年08月07日 10:41:20   作者:濤哥是個大帥比  
本文介紹了在SpringBoot項目中通過@PostConstruct注解和實現(xiàn)CommandLineRunner接口來在啟動時執(zhí)行方法,具有一定的參考價值,感興趣的可以了解一下

項目場景:

本文介紹Spring Boot項目啟動時執(zhí)行指定的方法兩種常用方式和他們之間的區(qū)別。

實現(xiàn)方案:

方式一:使用注解@PostConstruct

@Component
public class PostConstructTest {
    @PostConstruct
    public void postConstruct() {
		System.out.println("啟動時自動執(zhí)行  @PostConstruct 注解方法");
    }
}

優(yōu)點: 簡單方便,加上一個注解就行了。

缺點:如果@PostConstruct方法內(nèi)的邏輯處理時間較長,就會增加SpringBoot應(yīng)用初始化Bean的時間,進而增加應(yīng)用啟動的時間。因為只有在Bean初始化完成后,SpringBoot應(yīng)用才會打開端口提供服務(wù),所以在此之前,應(yīng)用不可訪問。

建議:輕量的邏輯可放在Bean的@PostConstruct方法中,耗時長的邏輯如果放在@PostConstruct方法中,可使用@Async異步方法。

使用異步代碼示例:

@Service
public class TestService {
 
    @Async("testAsync")  //指定線程池
    public void test() {
        System.out.println("------------------------異步方法開始 " + Thread.currentThread().getName());
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("----------------異步方法執(zhí)行完了" + Thread.currentThread().getName());
    }
}
@Component
public class PostConstructTest {

	@Autowired
    private TestService testService;
	
    @PostConstruct
    public void postConstruct() {
		System.out.println("啟動時自動執(zhí)行  @PostConstruct 注解方法");
		testService.test();
    }
}

Spring Boot中多個PostConstruct注解執(zhí)行順序控制

方式二:實現(xiàn)CommandLineRunner接口

@Component
public class CommandLineRunnerImpl implements CommandLineRunner {

    @Override
    public void run(String... args) throws Exception {
		System.out.println("啟動時自動執(zhí)行 CommandLineRunner 的 run 方法");
    }
}

優(yōu)點: 項目已經(jīng)初始化完畢,才會執(zhí)行方法,所以不用等這個方法執(zhí)行完,就可以正常提供服務(wù)了。

缺點:暫未發(fā)現(xiàn)。

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

相關(guān)文章

  • Java性能的十一個用法分享

    Java性能的十一個用法分享

    這篇文章主要介紹了Java性能的十一個用法,需要的朋友可以參考下
    2014-10-10
  • Spring?Bean注冊與注入實現(xiàn)方法詳解

    Spring?Bean注冊與注入實現(xiàn)方法詳解

    首先,要學(xué)習(xí)Spring中的Bean的注入方式,就要先了解什么是依賴注入。依賴注入是指:讓調(diào)用類對某一接口的實現(xiàn)類的實現(xiàn)類的依賴關(guān)系由第三方注入,以此來消除調(diào)用類對某一接口實現(xiàn)類的依賴。Spring容器中支持的依賴注入方式主要有屬性注入、構(gòu)造函數(shù)注入、工廠方法注入
    2022-10-10
  • 圖解Java?ReentrantLock的條件變量Condition機制

    圖解Java?ReentrantLock的條件變量Condition機制

    想必大家都使用過wait()和notify()這兩個方法把,他們主要用于多線程間的協(xié)同處理。而RenentrantLock也支持這樣條件變量的能力,而且相對于synchronized?更加強大,能夠支持多個條件變量,本文就來詳細說說
    2022-10-10
  • Java多線程之并發(fā)編程的核心AQS詳解

    Java多線程之并發(fā)編程的核心AQS詳解

    AQS ( AbstractQueuedSynchronizer)是一個用來構(gòu)建鎖和同步器的框架,使用AQS能簡單且高效地構(gòu)造出應(yīng)用廣泛的大量的同步器,下面小編和大家來一起學(xué)習(xí)一下吧
    2021-09-09
  • java多線程詳細總結(jié)

    java多線程詳細總結(jié)

    以下小編就對java中的多線程進行了詳細的總結(jié)分析,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • Java全面解析ttf字體的信息

    Java全面解析ttf字體的信息

    文章介紹了Java如何解析TTF字體文件,提取字體的基本信息、版本信息、版權(quán)和許可證、字符映射以及各種表格信息,通過代碼解析,可以獲取字體的詳細描述和度量數(shù)據(jù)
    2025-01-01
  • SpringBoot?使用?Sa-Token?完成注解鑒權(quán)功能(權(quán)限校驗)

    SpringBoot?使用?Sa-Token?完成注解鑒權(quán)功能(權(quán)限校驗)

    Sa-Token?是一個輕量級?java?權(quán)限認證框架,主要解決登錄認證、權(quán)限認證、單點登錄、OAuth2、微服務(wù)網(wǎng)關(guān)鑒權(quán)?等一系列權(quán)限相關(guān)問題,這篇文章主要介紹了SpringBoot使用Sa-Token完成注解鑒權(quán)功能,需要的朋友可以參考下
    2023-05-05
  • Spring常見錯誤之Web嵌套對象校驗失效解決辦法

    Spring常見錯誤之Web嵌套對象校驗失效解決辦法

    這篇文章主要介紹了Spring常見錯誤之Web嵌套對象校驗失效解決的相關(guān)資料,通過在Phone對象上添加@Valid注解,問題得以解決,需要的朋友可以參考下
    2025-01-01
  • Springboot集成Jasypt實現(xiàn)配置文件加密的方法

    Springboot集成Jasypt實現(xiàn)配置文件加密的方法

    Jasypt是一個java庫,它允許開發(fā)員以最少的努力為他/她的項目添加基本的加密功能,并且不需要對加密工作原理有深入的了解,這篇文章主要介紹了Springboot集成Jasypt實現(xiàn)配置文件加密,需要的朋友可以參考下
    2023-04-04
  • Java中的Map允許有重復(fù)元素嗎?

    Java中的Map允許有重復(fù)元素嗎?

    今天小編就為大家分享一篇關(guān)于Java中的Map允許有重復(fù)元素嗎?,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02

最新評論