springboot 自动配置原理(SPI机制)
2021-11-26 17:40:40 9 举报
登录查看完整内容
springboot 自动配置原理(SPI机制)
作者其他创作
大纲/内容
Y
classloader1
遍历classpath下所有jar包的META-INF/spring.factories
依赖
FeignAutoConfiguration
XXXServiceApplication启动类
beanClassLoader
springboot中的接口
@SpringBootApplication
注入spring factory中:RibbonAutoConfiguration
........
ImportSelector
EnableAutoConfiguration
关联
入参
N
取出配置的EnableAutoConfiguration的实现类名
BeanFactoryAware往spring中注入bean
加入
实现
@Import(AutoConfigurationImportSelector.class)
cache中该beanClassLoader是否存在
SpringFactoriesLoader.loadFactoryNames()加载所有实现的类名
getCandidateConfigurations()获取潜在配置类列表
如:spring-cloud-netflix-ribbon:2.1.0.RELEASE.jarMETA-INF/spring.factories 中的org.springframework.boot.autoconfigure.EnableAutoConfiguration=\\org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration
第三方jar中spring.factories中配置的实现
ResourceLoaderAware外部资源导入
类加载器
EnableAutoConfiguration.class
RibbonAutoConfiguration
spring.boot.autoconfigure@EnableAutoConfiguration
SPI应用
参考:https://www.jianshu.com/p/46b42f7f593c
DeferredImportSelector
selectImports()查出要导入的类
spring初始化时会扫描该接口的所有实现,执行selectImports()
HystrixAutoConfiguration
0 条评论
回复 删除
下一页