SpringBoot自动装配的原理

SpringBoot自动装配的原理

首先我们先谈一下什么是自动装配,自动装配就是当我们启动一个SpringBoot项目后一些配置类,和一些bean对象会自动的存入我们的aplication容器中,也就是IOC容器中,不需要我们手动的通过@Service,@Controller 等注解去注入到IOC容器中,
我们可以通过启动类上的@SpringBootAppication注解入手,他下面又分三个主要注解,和一些元注解 分别是@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan @SpringBootConfiguration是一个组合注解 里面又有@Configuration注解 可以将一个我们的启动类 定义成一个配置类并交给IOC容器管理,
@ComponentScan注解是进行组件扫描默认是扫描引导类所在的包及其子包,
@EnableAutoConfiguration注解就是自动配置的核心注解,
在讲这个注解之前,我们先明确一下何如讲依赖jar包中提供的bean导入当前项目的IOC容器中,有两种方法
1、通过在启动类上加ComponentScan 组件扫描指定的包,
2、通过Import注解导入,它可以导入,普通类,配置类,和实现了importSelector接口的类
SpringBoot就是基于实现importSelector接口来实现自动注入的,他先是通过 @Import在IOC容器中注入了AutoConfigurationImportSelector类,这个类底层还是实现了ImportSelector接口,并实现了selectImports()方法而这个方法会去读取两份配置文件,一份儿是 spring.factories,另外一份儿是 autoConfiguration.imports,而在 autoConfiguration.imports 这份儿文件当中,它就会去配置大量准备自动配置的类。并将配置文件中定义的配置类做为selectImports()方法的返回值返回,返回值代表的就是需要将哪些类交给Spring的IOC容器进行管理。
但是autoConfiguration配置文件中的bean不会都加载到IOC容器中,是通过@Conditional注解进行条件装配的,只有条件成立才会声明这个bean交给IOC容器管理

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值