springboot 自动加载源码分析

    科技2023-10-03  79

    一、前言 因为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的关系,最终将配置类加载进去

    Processed: 0.024, SQL: 8