成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

spring boot學(xué)習(xí)(3): SpringApplication 事件監(jiān)聽

Acceml / 2702人閱讀

摘要:在框架中,有多種事件這些時(shí)間會在不同的運(yùn)行時(shí)刻發(fā)布,來通知監(jiān)聽者。本文僅僅介紹的事件的監(jiān)聽。也可以在文件中配置。

spring application listener

spring 框架中,有多種事件, 這些時(shí)間會在不同的運(yùn)行時(shí)刻發(fā)布,來通知監(jiān)聽者。本文僅僅介紹 SpringApplicationEvent 的事件的監(jiān)聽。

事件類型
EventType 發(fā)布時(shí)間
ApplicationContextInitializedEvent SpringApplication正在啟動, ApplicationContext 已經(jīng)準(zhǔn)備好了,ApplicationContextInitializers 被調(diào)用, bean definitions 被加載之前
ApplicationStartingEvent 在一次啟動之前發(fā)布
ApplicationEnvironmentPreparedEvent Environment 準(zhǔn)備好之后,會有 context 去使用這一 Environment, 會在 context 創(chuàng)建之前發(fā)出
ApplicationPreparedEvent 會在 bean definitions 加載之后,refresh 之前發(fā)布
ApplicationStartedEvent context 更新之后,任何應(yīng)用或命令行啟動調(diào)用之前
ApplicationReadyEvent 任何應(yīng)用或命令行啟動調(diào)用之后發(fā)布,說明應(yīng)用已經(jīng)可以被請求了
ApplicationFailedEvent 啟動發(fā)生有異常時(shí)發(fā)步
如何監(jiān)聽

監(jiān)聽器需要使用 org.springframework.context.ApplicationListener 這個(gè)接口的實(shí)例, 其聲明如下:

@FunctionalInterface
public interface ApplicationListener extends EventListener {
        /**
     * Handle an application event. * @param event the event to respond to
     */  
    void onApplicationEvent(E event);
}

需要使用 SpringApplication.addListeners(…?)SpringApplicationBuilder.listeners(…?) 來添加監(jiān)聽器。也可以在 META-INF/spring.factories 文件中配置:org.springframework.context.ApplicationListener=com.example.project.MyListener。

例子:

public class StartingEventListener implements ApplicationListener {
    @Override
    public void onApplicationEvent(ApplicationStartingEvent applicationStartingEvent) {
        System.out.println("called own starting listener");

        System.out.println(applicationStartingEvent.getClass());
    }
}
@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args){
        SpringApplication application = new SpringApplication(DemoApplication.class);
        application.addListeners(new StartingEventListener());
        application.run(args);
    }
}

終端運(yùn)行 jar 包:

$ java -jar build/libs/springlisteners-0.0.1-SNAPSHOT.jar
called own starting listener
class org.springframework.boot.context.event.ApplicationStartingEvent

  .   ____          _            __ _ _
 / / ___"_ __ _ _(_)_ __  __ _    
( ( )\___ | "_ | "_| | "_ / _` |    
 /  ___)| |_)| | | | | || (_| |  ) ) ) )
  "  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.3.RELEASE)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/73697.html

相關(guān)文章

  • Spring Boot 參考指南(SpringApplication)

    摘要:在創(chuàng)建之前,實(shí)際上觸發(fā)了一些事件,因此不能將偵聽器注冊為。使用的事件發(fā)布機(jī)制發(fā)送應(yīng)用程序事件,該機(jī)制的一部分確保在子環(huán)境中發(fā)布給偵聽器的事件也會在任何祖先上下文中被發(fā)布給監(jiān)聽器。 23. SpringApplication SpringApplication類提供了一種方便的方法來引導(dǎo)從main()方法開始的Spring應(yīng)用程序。在許多情況下,你可以委托給靜態(tài)SpringApplica...

    Jochen 評論0 收藏0
  • 漲姿勢:Spring Boot 2.x 啟動全過程源碼分析

    摘要:參考創(chuàng)建所有運(yùn)行監(jiān)聽器并發(fā)布應(yīng)用啟動事件來看下創(chuàng)建運(yùn)行監(jiān)聽器相關(guān)的源碼創(chuàng)建邏輯和之前實(shí)例化初始化器和監(jiān)聽器的一樣,一樣調(diào)用的是方法來獲取配置的監(jiān)聽器名稱并實(shí)例化所有的類。 上篇《Spring Boot 2.x 啟動全過程源碼分析(一)入口類剖析》我們分析了 Spring Boot 入口類 SpringApplication 的源碼,并知道了其構(gòu)造原理,這篇我們繼續(xù)往下面分析其核心 ru...

    suemi 評論0 收藏0
  • Spring Boot 2.x 啟動全過程源碼分析(上)入口類剖析

    摘要:設(shè)置應(yīng)用上線文初始化器的作用是什么源碼如下。來看下方法源碼,其實(shí)就是初始化一個(gè)應(yīng)用上下文初始化器實(shí)例的集合。設(shè)置監(jiān)聽器和設(shè)置初始化器調(diào)用的方法是一樣的,只是傳入的類型不一樣,設(shè)置監(jiān)聽器的接口類型為,對應(yīng)的文件配置內(nèi)容請見下方。 Spring Boot 的應(yīng)用教程我們已經(jīng)分享過很多了,今天來通過源碼來分析下它的啟動過程,探究下 Spring Boot 為什么這么簡便的奧秘。 本篇基于 S...

    MobService 評論0 收藏0
  • 源碼解讀 Spring Boot Profiles

    摘要:有了配置文件之后,啟動程序,我們首先可以看到日志輸入,由此可以看出程序讀取了的配置。首先,根據(jù)的全局查找功能,直接搜索這些詞出現(xiàn)的位置,進(jìn)行定位,可以找到這個(gè)日志出現(xiàn)于方法之中。由于我們的配置文件在下,所以只要留意當(dāng)為的程序執(zhí)行情況即可。 前言 上文《一文掌握 Spring Boot Profiles》 是對 Spring Boot Profiles 的介紹和使用,因此本文將從源碼角度...

    Dionysus_go 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<