Springboot自动配置原理的解析

1.SpringBootApplication中有一个@EnableAutoConfiruation注解,他导入了一个类,在启动的时候加载jar包中所有的META-INF中的/spring.factories配置文件中org.springframework.boot.autoconfigure.EnableAutoConfiguration所配置的配置类,并加载。

2.加载了很多配置类,但是并不是所有的配置类都会生效,原因是条件注解的存在。

什么是自动配置:springboot 启动的时候会自动创建一些必要bean对象,并放到IOC applicationContext中

会加载所有的bean对象吗?为什么?

如果Spring没有添加任何的附加条件,此时这些配置类中所定义的bean都会被导入到Spring容器中,这样非常消耗内存,因此在Spring中提供了很多的条件注解,通过这些条件注解控制某一个配置是否生效。

具体详细总结:

1.在SpringBoot项目中有一个注解@SpringBootApplication,这个注解是对三个注解进行了封装:@SpringBootConfiguration、@ComponentScan

其中@EnableAutoConfiguration是实现自动化配置的核心注解。

2.其中@EnableAutoConfiguration中是对6个注解的封装,其中@Import注解是核心,它导入AutoConfigurationImportSelector.class,然后AutoConfigurationImportSelector这个类实现了一个导入器接口DeferredImportSelector。该接口继承了ImportSelector接口,再改接口中存在一个方法selctImports.

3.该方法的返回值是一个数组,数组中存储的就是要被导入到spring容器中的类的全类名,在AutoConfigurationImportSelector类中重写了这个方法。

4.在方法内部就是读取了项目的classpath路径下META-INF/spring.factories文件中的所配置的类的全类名。

5.在这些配置类中所定义的Bean会根据条件注解所制定的条件来决定是否需要将其导入到Spring容器中。
                        
原文链接:https://blog.csdn.net/qq_41805567/article/details/129111183

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值