springboot的自动配置原理

Springboot的自动配置≠自动装配,不能混淆理解;

自动装配:Springboot的自动装配是由spring容器动态的创建bean的对象实例,核心是工厂模式+反射机制;

自动配置:springboot的自动配置则是基于自己项目引入的依赖,将这些依赖的配置类放入spring容器,动态的为这些配置类创建对象实例,十分方便开发人员的使用,符合开箱即用的原则。

springboot的自动装配是springboot框架的一大核心,无需为这些配置类去new对象,直接使用@Autowired就可以直接使用相应的对象。

1.实现核心

自动配置的实现核心便是@SpringBootApplication这个注解,翻看源码

便可知其由这几个个注解组成:

 @springbootconfiguration是将该类标识为一个配置类;

@ComponentScan则是spring中的扫包注解,将springboot启动类包下标有能被识别的注解的类,注入到spring容器中;

@EnableAutoConfiguration则是实现自动配置的核心;

点进该注解的源码:

 

可以看到由这几个注解组成 。

@EnalbeConfigrition则处理注解Import导入选择器,在类AutoConfigurationImportSelector(选择器)中加载处理自动配置类,处理流程是:

①:通过SpringFactories机制加载配置文件;

注:核心实现的文件路径是:classpath下的META-INF/spring.factories; 

②:找出所有的自动配置类;

③:根据注解@Confitional过滤掉不必要的自动配置类;

  注:@ConcItional 来自spring框架的注解,满足特定条件时,才会向IOC容器注册;

④:实例化这些配置类的bean对象,完成自动配置;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值