0%

SpringBoot自动装配原理

读了一下源码,找了一下自动装配的原因。

1.SpringBoot项目使用主类启动,其核心注解是:@SpringApplication注解

image-20210129143511845

2.进入@SpringApplication注解,在这个注解里面,最主要的注解就是:@EnableAutoConfiguration,看名字就能看出这是进行自动装配的注解

image-20210129143527902

3.进入@EnableAutoConfiguration注解,会发现这其实就是通过注解:@import注解来完成导入配置的功能

image-20210129143545152

4. SpringFactoriesLoader.loadFactoryNames() 核心方法读取 ClassPath 目录下面的 META-INF/spring.factories 文件。找到进入内部类AutoConfigurationImportSelector.class,SpringFactoriesLoader.loadFactoryNames() 核心方法读取 ClassPath 目录下面的 META-INF/spring.factories 文件

image-20210129143608859

5.spring.factories 文件中配置了SpringBoot自动配置类

image-20210329163906867

6.总结:

进入@SpringApplication注解;

找到@EnableAutoConfiguration注解,开启自动配置;

进入注解@Import;

找到SpringFactoriesLoader.loadFactoryNames() 核心方法;

读取 ClassPath 目录下面的 META-INF/spring.factories 文件; spring.factories 文件中装配了常见的自动配置

----------本文结束感谢您的阅读----------