SpringBoot
【黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)】
SpringBoot 原理篇
文章目录
- SpringBoot
- SpringBoot 原理篇
- 1 自动配置
- 1.16 自动配置原理【2】
- 1.16.1 看源码了
- 1.16.2 @Import({AutoConfigurationImportSelector.class})
- 1.16.3 spring.factories
1 自动配置
1.16 自动配置原理【2】
1.16.1 看源码了
之前我们讲了一下//@Import({AutoConfigurationPackages.Registrar.class}) 这个东西在干嘛
OK,下面来看第二个 //@Import({AutoConfigurationImportSelector.class})
1.16.2 @Import({AutoConfigurationImportSelector.class})
直接点进去
public class AutoConfigurationImportSelector implements DeferredImportSelector, BeanClassLoaderAware, ResourceLoaderAware, BeanFactoryAware, EnvironmentAware, Ordered {
可以看到它实现了一堆接口
这些接口可以分为三大类:
-
BeanClassLoaderAware, ResourceLoaderAware, BeanFactoryAware, EnvironmentAware【资源发现】
解释下:只要有bean 实现了这些接口之一,那就可以在那个bean 使用 applicationContext 这个对象了
拿到之后,就可以进行一系列操作了,比如在自定义的方法中去打印所有的bean
-
DeferredImportSelector
这个接口在 ImportSelector 的基础上进行了扩展,【翻译:推迟的导入选择器】
所以这个东西加载得一定比别人晚
-
Ordered【排序】
点进去看看
两个常量【最小值、最大值】,一个方法
设置在容器中的加载顺序
默认的加载顺序值【】
很明显就是最大值 - 1
1.16.3 spring.factories
一个一个的名儿、对应一组一组的值
说实话,没看懂