SpringBoot自动配置原理,@SpringBootApplication

1. SpringBoot程序入口(工程引导类入口)是注解@SpringBootApplication

2. @SpringBootApplication注解底层封装了三个注解:

        @SpringBootConfiguration:该注解与@Configuration注解作用相同,来声明是一个配置类。
        @EnableAutoConfiguration:SpringBoot实现自动化配置的核心注解。
        @ComponentScan :组件扫描,默认扫描当前引导类所在包及子包,默认不会扫描引用包。

3. 在@EnableAutoConfiguration注解中底层封装了一个@Import注解,而@Import注解中指定的是一个ImportSelector的一个实现类(AutoConfigurationImportSelector),这个实现类实现了String[]selectImports(...)方法,此方法返回的是一个String数组,数组中封装的是要导入到Spring IOC容器中的类的全类名

4. 在 3 中ImportSelector的实现类实现的String[]selectImports(...)方法中,加载了以下两个文件,(而SpringBoot3.x.x以后,只加载org.springframework.boot.autoconfigure.AutoConfiguration.imports文件)。

5.  所有要导入的配置类都声明在org.springframework.boot.autoconfigure.AutoConfiguration.imports文件中,文件包含的是配置类的全类名,配置类中可以通过@Bean注解声明一个个的Bean对象。最终SpringBoot启动的时候,就会加载配置文件中的一个个配置类,然后将配置类的信息封装到String[]selectImports(...)方法返回的数组中,最后通过@Import(AutoConfigurationImportSelector.class)将配置类加载到IOC容器中,交给IOC容器进行管理。(注意并不是全部注册为IOC容器的Bean)

6. SpringBoot自动配置时注意并不是全部注册为IOC容器的Bean,SpringBoot会根据@Conditional注解条件装配,如下需要先进行条件判断(如有的类出现时才生成Bean):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

One day️

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值