spring Boot 自动配置原理

     关于spring Boot自动配置原理,首先需要回归到@SpringBootApplication注解,这个注解是一个组合注解

它包括@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan 注解

1.核心注解@EnableAutoConfiguration中会Import  AutoConfigurationImportSelector.class  如下

 

2.AutoConfigurationImportSelector.class中,使用SpringFactoriesLoader.loadFactoryNames方法扫描具有META-INF/spring.factories的文件,spring.factories文件中声明了那些自动配置,如下图

3.spring.factories声明内容

4.查看自动配置声明,可以看到autoConfiguration文件中,一般都会包含一些条件注解,例如@ConditionalOnBean,@ConditionalOnClass,@ConditionalOnMissingBean,@ConditionalOnMissingClass,@ConditionalOnJava,@ConditionalOnJndi,@ConditionalOnproperty,@ConditonalOnResource 等 如图AopAutoConfiguration

5.到这我们可以了解到,利用上述条件注解,我们也可以自己写一个AutoConfiguration.class来实现自动配置,例如使用@ConditionalOnMissimBean注解,当容器中不存在指定bean时,new一个bean并返回。此时该对象自动配置还不会生效,我们还需要在META-INF下的spring.factories中声明自己写的AutoConfiguration。

这就是spring Boot 自动配置的实现。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值