springBoot帮我们完成了什么事呢?、
DeferredImportSelector这个接口代表进行导入类选择 ,并且在当前包导入完成后来帮助我们在自动话配置,这样设计是为了让我们的配置能够先生效。
这块的代码,获取到所有三方组件的自动化配置类
这里的类我们从我们的问题上可以看出,这些类应该是替我们自动创建bean的类,那它是怎么发现这些类的呢,
从这个方法上看,它是获取jar文件的指定的路径下的文件的内容。
可以发现,上面的那些配置类是在这个文件下进行配置,到这里我们就已经完成springBoot提供了自动创建bean的类,并且提供了发现了这些类的机制,接下来我们来解析,这些类是如何帮我们完成自动化创建bean,我们来提供一个mybait的自动化配置类来进行解析
2.2.2 自动化创建配置bean是如何工作的
2.2.2.1 标签解析
在我们提出的问题上,我们知道创建bean存在这先后的问题,
ConditionalOnClass表示必须存在某些类,才能执行创建
AutoConfigureAfter 类加载完后,在加载指定的类
EnableConfigurationProperties 指定一个用户配置的属性配置类,这里存放这我们的常用配置属性,如果以后找不到配置类,我们可以从这里查找配置。
2.2.2.2 创建bean
从上面的标签,我们开始进入创建bean
这里就替我们完成了一个SqlSessionFactory的配置,而我们不需要自己来配置,到这里我们就对springBoot如何帮我们自动配置有了一个了解