[关闭]
@yulongsun 2018-08-20T13:19:14.000000Z 字数 752 阅读 740

SpringBoot分析系列 - 自动配置原理

SpringBoot分析系列


1. 原理

本质就是【工厂加载机制】
1. 通过SpringFactoriesLoader加载META-INF/spring.factories目录中的Properties配置。
2. 通过Spring注解后解析器将加载的组件注册到Spring上下文。

2. 核心类

  1. EnableAutoConfiguration
    本质是一个@Import注解
    image_1clai61ciik817q4oh7kjq1ap.png-49.3kB

  2. AutoConfigurationImportSelector
    image_1claiggfu11c2ehm1qve1ilk1m5d1m.png-23.6kB
    AutoConfigurationImportSelector是ImportSelector的具体实现。
    主要任务是:通过SpringFactoriesLoader加载META-INF/spring.factories目录中的Properties配置。
    image_1clbbgb3c1pq0b8v77hofo1s452g.png-402.5kB

  3. 主要逻辑:

    1. 读取Spring.factories中的Properties配置;
    2. 删除重复配置;
    3. 获取@EnableAutoConfiguration中exclude的类;
    4. 移除exclude的类;
    5. 处理@Condition注解,使用spring.factories加载一个key为"AutoConfigurationImportFilter"的过滤器
    6. 触发消息,通知实现了"AutoConfigurationImportListener"接口的所有的监听器。
    7. 返还给ConfigurationClassParser继续处理;
  4. META-INF/spring.factories配置
    image_1clbc2vapsqpp91caq1kc91tgl34.png-494.9kB

3. Spring加载如何从@Configuration到@EnableAutoConfigurationImportSelector


参考:
1. https://www.cnblogs.com/shamo89/p/8184960.html

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注