一、前言
因为springcloud的组件都是借助springboot的自动加载创建对象,所以分析springboot自动加载,对springcloud的组件源码学习是很有必要的。
二、源码分析
1、@SpringBootApplication
总所周知,springboot启动类中都有@SpringBootApplication
2、@EnableAutoConfiguration
进去之后,查看自动加载配置的注解
3、AutoConfigurationImportSelector
查看@Import中的类
4、selectImports
重点看AutoConfigurationImportSelector类的selectImports方法,会自动执行selectImports方法,这里重点看selectImports方法中 的getAutoConfigurationEntry方法调用。
String factoryClassName = factoryClass.getName();是加载自定义配置文件
loadSpringFactories(classLoader).getOrDefault(factoryClassName, Collections.emptyList()); 是加载springboot中的配置文件
常量值FACTORIES_RESOURCE_LOCATION
public static final String FACTORIES_RESOURCE_LOCATION = “META-INF/spring.factories”;
拿springcloud 的eureka为例,进而找寻下面的文件
如果类上加了EnableAutoConfiguratio的注解,就会自动找到后面的字符串,就是key-value的关系,最终将配置类加载进去
springboot 自动加载源码分析
最新推荐文章于 2024-05-30 00:29:42 发布