成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

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

Acceml / 2749人閱讀

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

spring application listener

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

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

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

@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);
    }
}

終端運行 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://m.hztianpu.com/yun/73697.html

相關(guān)文章

  • Spring Boot 參考指南(SpringApplication)

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

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

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

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

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

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

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

    Dionysus_go 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<