开始
可执行组件
八种类型
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如何使用命令行参数改变运行时端口号