Spring boot源码初识一 spring.factories扩展点

spring.factories介绍

位置:META-INF/spring.factories
功能:spring boot启动时会加载这个文件夹中内容,以key-value方式存储每种类型对应的执行类的集合,根据启动的生命周期,调用不同key对应的集合

spring.factories支持的key

key完整名
org.springframework.beans.BeanInfoFactory
org.springframework.boot.diagnostics.FailureAnalyzer
org.springframework.boot.env.EnvironmentPostProcessor
org.springframework.boot.SpringApplicationRunListener
org.springframework.context.ApplicationContextInitializer
org.springframework.boot.env.PropertySourceLoader
org.springframework.context.ApplicationListener
org.springframework.boot.diagnostics.FailureAnalysisReporter
org.springframework.boot.SpringBootExceptionReporter
org.springframework.boot.autoconfigure.AutoConfigurationImportFilter
org.springframework.boot.autoconfigure.AutoConfigurationImportListener
org.springframework.boot.autoconfigure.template.TemplateAvailabilityProvider
org.springframework.boot.autoconfigure.EnableAutoConfiguration

扩展点调用顺序

序号类(key)参数/方法触发时机
1ApplicationListenerApplicationStartingEvent服务准备启动
2SpringApplicationRunListenerstarting服务准备启动
3PropertySourceLoadergetFileExtensions/load加载自定义后缀的配置(文件名要spring规范,后缀loader中指定)
5ApplicationListenerApplicationEnvironmentPreparedEvent环境创建完
6SpringApplicationRunListenerenvironmentPrepared环境创建完
7ApplicationContextInitializerAnnotationConfigServletWebServerApplicationContext上下文初始化中,此处可修改context上下文内容
8ApplicationListenerApplicationContextInitializedEvent上下文初始化完
8SpringApplicationRunListenercontextPrepared上下文初始化完
9SpringApplicationRunListenercontextLoaded刷新前
10ApplicationListenerApplicationPreparedEvent上下文加载完成
11SpringApplicationRunListenercontextLoaded上下文加载完成
12BeanInfoFactory
13AutoConfigurationImportFilterautoConfigurationClasses(参数所有自动配置类)返回需要排除的自动配置类
14TemplateAvailabilityProviderisTemplateAvailable
15BeanInfoFactory
16TemplateAvailabilityProviderisTemplateAvailable
17EnableAutoConfiguration--加载自动配置类
18ApplicationListenerServletWebServerInitializedEventweb服务初始化完成
19ApplicationListenerContextRefreshedEvent上下文刷新完成
20ApplicationListenerApplicationStartedEvent应用启动完成
21ApplicationListenerAvailabilityChangeEvent记录应用程序处于活动中
22ApplicationListenerApplicationReadyEvent
23ApplicationListenerAvailabilityChangeEvent标记应用程序已准备就绪,可以处理请求

spring boot启动流程图

在这里插入图片描述

EnableAutoConfiguration 加载流程图

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值