Springboot启动原理

springboot只需要一个主配置类就可以启动一系列的功能。主要在于@SpringbootApplication这个注解。

1、@SpringbootApplication注解

打开后发现,这个注解其实标注这个类本身也是一个配置类。
@EnableAutoConfiguration表示开启自动配置,这也是最重要的一个注解。
@ComponentScan是开启组件扫描的注解。

2、@EnableAutoConfiguration注解
在这里插入图片描述
这个注解最重要的是@Import这个注解向容器里面导入的组件。图中可以看到,它导入的是AutoConfigurationImportSelector.class,我们看一下这个类的源码。
在这里插入图片描述
我们看到,在这个方法中标红的位置返回了一系列的配置,我们只需要看一下,它返回的configurations是哪些,就知道了。
在这里插入图片描述
3、configurations集合
在这里插入图片描述
我们看到,这个集合是通过SpringFactoriesLoader去加载一些组件,打开loadFactoryNames这个方法会发现
在这里插入图片描述
通过图中红框位置加载配置文件,这个配置文件如下
在这里插入图片描述
在这里插入图片描述
打开配置文件发现其最终就是加载这个文件中的许多的类的全路径,将其实例化并放入容器内。

所以可以得到以下结论:
@SpringBootApplication ——> @EnableAutoConfiguration ——> @Import ——> EnableAutoConfigurationImportSelector.class ——> List configurations ——> SpringFactoriesLoader.loadFactoryNames() ——> spring.factories。
这应该是整个过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值