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

Spring中的監(jiān)聽器SpringApplicationRunListener詳解

 更新時間:2023年11月08日 10:03:13   作者:你就像甜甜的益達  
這篇文章主要介紹了Spring中的監(jiān)聽器SpringApplicationRunListener詳解,命名我們就可以知道它是一個監(jiān)聽者,分析springboot啟動流程我們會發(fā)現(xiàn),它其實是用來在整個啟動流程中接收不同執(zhí)行點事件通知的監(jiān)聽者,需要的朋友可以參考下

SpringApplicationRunListenerde作用

命名我們就可以知道它是一個監(jiān)聽者,分析springboot啟動流程我們會發(fā)現(xiàn),它其實是用來在整個啟動流程中接收不同執(zhí)行點事件通知的監(jiān)聽者

SpringApplicationRunListener接口規(guī)定了SpringBoot的生命周期,在各個生命周期廣播相應的事件,調(diào)用實際的ApplicationListener類。

源碼分析

在這里插入圖片描述

在這里插入圖片描述

前面分析過,前面講過啟動的時候會先加載spring會加載所有jar包下的META-INF/spring.factories,然后緩存起來,這里就可以通過類型進行獲取;

然后通過反射,實例化SpringApplicationRunListener類;注意,前面講過實例化的類型,一個是SpringApplication類型,一個String數(shù)組類型;

在這里插入圖片描述

然后就會在springboot容器的各個階段通過封裝的類SpringApplicationRunListeners進行處理;

方法詳解

public interface SpringApplicationRunListener {

     //剛執(zhí)行run方法時
    void started();
     //環(huán)境建立好時候
    void environmentPrepared(ConfigurableEnvironment environment);
     //上下文建立好的時候
    void contextPrepared(ConfigurableApplicationContext context);
    //上下文載入配置時候
    void contextLoaded(ConfigurableApplicationContext context);
    //上下文刷新完成后,run方法執(zhí)行完之前
    void finished(ConfigurableApplicationContext context, Throwable exception);

}

具體使用

新建類實現(xiàn)SpringApplicationRunListener,需要構(gòu)造方法,里面兩個參數(shù)SpringApplication sa, String[] args;

在resources下新建META-INF\spring.factories文件,文件里面將新建的實現(xiàn)類的類路徑配置進去:

org.springframework.boot.SpringApplicationRunListener=com.study.springbootplus.config.MyApplicationRunListener
public class MyApplicationRunListener implements SpringApplicationRunListener {

  private final SpringApplication application;
  private final String[] args;

  public MyApplicationRunListener(SpringApplication sa, String[] args) {
    this.application = sa;
    this.args = args;
  }

  @Override
  public void starting() {
    System.out.println("服務啟動RunnerTest  SpringApplicationRunListener的starting方法...");
  }

  @Override
  public void environmentPrepared(ConfigurableEnvironment environment) {
    System.out.println("服務啟動RunnerTest  SpringApplicationRunListener的environmentPrepared方法...");
  }

  @Override
  public void contextPrepared(ConfigurableApplicationContext context) {
    System.out.println("服務啟動RunnerTest  SpringApplicationRunListener的contextPrepared方法...");
  }

  @Override
  public void contextLoaded(ConfigurableApplicationContext context) {
    System.out.println("服務啟動RunnerTest  SpringApplicationRunListener的contextLoaded方法...");
  }

  @Override
  public void running(ConfigurableApplicationContext context) {
    System.out.println("服務啟動RunnerTest  SpringApplicationRunListener的running方法...");
  }

  @Override
  public void failed(ConfigurableApplicationContext context, Throwable exception) {
    System.out.println("服務啟動RunnerTest  SpringApplicationRunListener的failed方法...");
  }

  @Override
  public void started(ConfigurableApplicationContext context) {
    System.out.println("服務啟動RunnerTest  SpringApplicationRunListener的started方法...");
  }
}

注意事項

  • 任何一個SpringApplicationRunListener實現(xiàn)類的構(gòu)造方法都需要有兩個構(gòu)造參數(shù);源碼里面分析了,需要根據(jù)指定類型的構(gòu)造方法初始化類;
  • SpringApplicationRunListener的配置在resources下新建META-INF\spring.factories文件,文件里面將新建的實現(xiàn)類的類路徑配置進去,對應的key是org.springframework.boot.SpringApplicationRunListener;
  • SpringApplicationRunListener屬于應用程序啟動層面的監(jiān)聽器,在springboot啟動時候,調(diào)用run方法進行反射加載初始化。此時上下文還沒有加載,如果通過@Compnant是起不了作用的.

到此這篇關(guān)于Spring中的監(jiān)聽器SpringApplicationRunListener詳解的文章就介紹到這了,更多相關(guān)Spring的SpringApplicationRunListener內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java數(shù)據(jù)類型與變量詳解

    Java數(shù)據(jù)類型與變量詳解

    文章主要介紹了Java中的字面常量、數(shù)據(jù)類型、變量、類型轉(zhuǎn)換和字符串類型,涵蓋了基本數(shù)據(jù)類型和引用數(shù)據(jù)類型,以及不同類型之間的轉(zhuǎn)換和運算規(guī)則,感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • springboot3.x使用@NacosValue無法獲取配置信息的解決過程

    springboot3.x使用@NacosValue無法獲取配置信息的解決過程

    在Spring Boot 3.x中升級Nacos依賴后,使用@NacosValue無法動態(tài)獲取配置,通過引入Spring Cloud依賴和使用@RefreshScope@Value結(jié)合的方式解決了問題
    2025-12-12
  • 命令行中 javac、java、javap 的使用小結(jié)

    命令行中 javac、java、javap 的使用小結(jié)

    使用 java 命令運行一個.class文件,需要使用該類的全限定類名,同時需要在當前路徑下有該類的包層次文件夾,這篇文章主要介紹了命令行中 javac、java、javap 的使用小結(jié),需要的朋友可以參考下
    2023-07-07
  • java并發(fā)編程專題(四)----淺談(JUC)Lock鎖

    java并發(fā)編程專題(四)----淺談(JUC)Lock鎖

    這篇文章主要介紹了java并發(fā)編程(JUC)Lock鎖的相關(guān)內(nèi)容,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • Java編程將漢字轉(zhuǎn)Unicode碼代碼示例

    Java編程將漢字轉(zhuǎn)Unicode碼代碼示例

    偶然看到Unicode編碼,覺得挺有意思,于是搜索了相關(guān)資料,準備學習學習,本文主要是一個Unicode編碼的簡單Java實現(xiàn),需要的朋友可以了解下。
    2017-10-10
  • java中反射(Reflection)機制舉例詳解

    java中反射(Reflection)機制舉例詳解

    Java中的反射機制是指Java程序在運行期間可以獲取到一個對象的全部信息,這篇文章主要介紹了java中反射(Reflection)機制的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-03-03
  • SpringBoot實現(xiàn)系統(tǒng)監(jiān)控的完整示例

    SpringBoot實現(xiàn)系統(tǒng)監(jiān)控的完整示例

    本文介紹了如何對SpringBoot應用進行系統(tǒng)監(jiān)控,包括監(jiān)控的重要性、詳細步驟以及最佳實踐,監(jiān)控可以幫助我們預防問題、快速定位和解決,提升系統(tǒng)性能和開發(fā)體驗,需要的朋友可以參考下
    2025-12-12
  • jconsole使用介紹(圖文)

    jconsole使用介紹(圖文)

    大家在學習java的時候,難免會對jvm進行一些深入的了解。推薦大家使用jdk下面的jconsole.exe來輔助理解jvm的一些概念
    2015-12-12
  • Netty學習教程之Netty與Marshalling結(jié)合發(fā)送對象

    Netty學習教程之Netty與Marshalling結(jié)合發(fā)送對象

    Netty是由JBOSS提供的一個Java開源框架,之前已經(jīng)給大家簡單介紹了一些基礎與使用,下面這篇文章主要給大家介紹了關(guān)于Netty與Marshalling結(jié)合發(fā)送對象的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-05-05
  • java中初始化MediaRecorder的實現(xiàn)方法

    java中初始化MediaRecorder的實現(xiàn)方法

    這篇文章主要介紹了java中初始化MediaRecorder的實現(xiàn)方法的相關(guān)資料,希望通過本文能幫助到大家,讓大家實現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10

最新評論

淮阳县| 从江县| 延长县| 丹巴县| 阳西县| 郧西县| 红原县| 章丘市| 萝北县| 北票市| 大姚县| 浏阳市| 五指山市| 德保县| 南澳县| 阜新市| 新源县| 阆中市| 凌源市| 聂拉木县| 寿阳县| 寿光市| 高陵县| 定州市| 孟州市| 张掖市| 万全县| 宜黄县| 普兰县| 襄汾县| 聂拉木县| 方城县| 海盐县| 阳东县| 嵩明县| 吐鲁番市| 东乌珠穆沁旗| 汽车| 湖口县| 富平县| 景德镇市|