国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

Acceml / 2691人閱讀

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

spring application listener

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

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

監(jiān)聽(tīng)器需要使用 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(…?) 來(lái)添加監(jiān)聽(tīng)器。也可以在 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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/73697.html

相關(guān)文章

  • Spring Boot 參考指南(SpringApplication)

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

    Jochen 評(píng)論0 收藏0
  • 漲姿勢(shì):Spring Boot 2.x 啟動(dòng)全過(guò)程源碼分析

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

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

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

    MobService 評(píng)論0 收藏0
  • 源碼解讀 Spring Boot Profiles

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

    Dionysus_go 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<