SpringBoot自动配置原理

目录

一、前言

二、@SpringBootApplication

 二、@EnableAutoConfiguration的作用

 三、流程图​

 四、总结


一、前言

pom.xml

  • spring-boot-dependencies: 核心依赖在父工程中存放了。我们在写或者引入一些SpringBoot依赖的时候,不需要指定版本,就是因为有这些版本仓库。

启动器:SpringBoot的启动场景。

<dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-web</artifactId>

</dependency>

比如:web启动器,spring会帮我们自动导入web环境的所有依赖

二、@SpringBootApplication

SpringBoot启动的时候加载主配置类,通过@SpringBootApplication就可以实现自动装配,而@SpringBootApplication是一个复合注解,主要由@SpringBootConfiguration(标识一个可以被组件扫描器扫描的配置类)、@EnableAutoConfiguration()、@ComponentScan(根据过滤条件把符合扫描规则的类装配到spring容器中) 构成,而真正实现自动配置的是@EnableAutoConfiguration这个注解。

 二、@EnableAutoConfiguration的作用

 

@EnableAutoConfiguration:自动配置

        @AutoConfigurationPackage:自动配置包

        @Import(AutoConfigurationImportSelector.class):导入选择器

 selectImports 选择组件:选择我们配置的pom.xml里的东西。

//获取所有的配置 

List<String> configurations = getCandidateConfigurations(annotationMetadata, attributes);

//获取候选的配置

-----> loadFactoryNames

//加载配置文件

loadSpringFactories

  

META-INF/spring.factories :自动配置文件     

所有的自动配置类都在这里了!需要导入对应的start才有作用,核心注解@ConditionalXXX如果这里的条件都满足配置才生效。

 三、流程图

四、总结

SpringBoot所有的自动配置都是在启动的时候扫描并加载:spring.factories所有的自动配置类都在这里,但不一定生效,要判断条件是否成立,只要导入对应的start,就有对应的启动器了,有了启动器,我们自动装配就会生效,然后就配置成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值