其中有几个注解:
@ConditionalOnClass@ConditionalOnMissingBean
@ConditionalOnClass
表示在类路径中存在类才会配置该配置类 。只有引入相关依赖才会自动配置该配置类 。@ConditionalOnMissingBean
表示只有不存在对应的类的bean
才会自动配置该类 。
spring.factories
里面并不是所有的bean
都会装配到IOC
容器中,只会按需配置对应的bean
。总结
Spring Boot
自动配置原理
- 1、
@EnableAutoConfiguration
注解导入AutoConfigurationImportSelector
类 。 - 2、执行
selectImports
方法调用SpringFactoriesLoader.loadFactoryNames()
扫描所有jar
下面的对应的META-INF/spring.factories
文件. - 3、限定为
@EnableAutoConfiguration
对应的value
, 将这些装配条件的装配到IOC
容器中 。
- 1、
- 自动装配简单来说就是自动将第三方的组件的
bean
装载到IOC
容器内,不需要再去写bean
相关的配置,符合约定大于配置理念 。 Spring Boot
基于约定大于配置的理念,配置如果没有额外的配置的话,就给按照默认的配置使用约定的默认值 , 按照约定配置到IOC
容器中,无需开发人员手动添加配置 , 加快开发效率 。
文章插图
【SpringBoot 自动装配原理】
推荐阅读
- springboot整合项目-商城个人头像上传功能
- 自动化利器 Ansible - 从了解到应用
- vs 自定义代码块
- 六 SpringCloud - RabbitMQ安装,三种消息发送模式,消息发送确认,消息消费确认(自动,手动)
- springboot项目整合-注册功能模块开发
- 如何在.NET程序崩溃时自动创建Dump?
- SpringBoot 过滤器和拦截器
- SpringBoot 常用注解的原理和使用
- 之六 2流高手速成记:从SpringBoot到SpringCloudAlibaba
- 三十九 Java开发学习----SpringBoot整合mybatis