開始
可執行組件
八種類型
PropertySourceLoader,屬性源加載器,用于載入屬性源。
SpringApplicationRunListener,Spring應用運行監聽器,用于監聽Spring應用運行過程中的各種事件。
SpringBootExceptionReporter,SpringBoot異常報告器。
ApplicationListener,應用監聽器,監聽應用發生的各種事件。
EnvironmentPostProcessor,環境后置處理器。
FAIlureAnalyzer,故障分析器。
FailureAnalysisReporter,故障分析報告器。
PropertiesPropertySourceLoader
YamlPropertySourceLoader
EventPublishingRunListener
EventPublishingRunListener,事件發布運行監聽器。這是SpringBoot的spring.factories中配置的唯一一個Spring應用運行監聽器。查看該監聽器的源代碼,發現它的作用就是通過一個多路廣播器,將SpringBoot運行狀態的變化,構建成事件,并廣播給各個監聽器。
ClearCachesApplicationListener
ParentContextCloserApplicationListener
FileEncodingApplicationListener
AnsiOutputApplicationListener
AnsiOutputApplicationListener,Ansi輸出應用監聽器。該監聽器的作用是,當收到應用環境準備就緒事件時,對Ansi輸出的相關狀態進行設置,并綁定到應用環境中。
ConfigFileApplicationListener
DelegatingApplicationListener
DelegatingApplicationListener,委托應用監聽器。這個監聽器比較有意思,它本身沒有實質性的處理某事件。而是在應用環境準備就緒事件發生時,通過環境中的配置的context.listener.classes,去搜集相應的監聽器。如果收集到,就會創建一個簡單事件廣播器實例,放到類屬性上,同時,還會把收集到的監聽器,綁定到該廣播器上。
該監聽器的另一個特性時,無論發生何事件,只要廣播器實例不為空,就利用該廣播器廣播該事件。
換一種方式配置監聽器
在application.yml中添加如下配置:
重啟項目,發現監聽器開始發揮作用,控制臺顯示如下:
相關
SpringBoot的優點,有哪些值得我們使用的地方
自定義SpringApplication初始化器和監聽器
SpringBoot中,如何自定義Spring應用運行時監聽器
自定義SpringBoot的Banner和Bean名稱是怎么來的?
SpringBoot如何使用命令行參數改變運行時端口號