您的位置:首页 > 编程语言 > Java开发

SpringBoot自动配置原理

2018-08-01 23:12 603 查看

最近在学springboot ,一直觉得框架中的自动配置功能很强大,省去了我们大量配置,然后我就通过网上和学习源码的方式大概明白了基本的实现原理,我给大家梳理一下。

一,关于自动配置所需的jar包,在  spring-boot-autoconfigure-2.0.3.RELEASE.jar 下,主要包含了如下图所示的配置(并未截全):

里面含大量的配置文件,class名称格式都为  XXXAutoConfigure.class 文件 ,看到这样的文件就是自动配置类了,

为了能在控制台观察自动配置的启动,我们可以在 application.yml 里面设置属性  debug=true。

 

二,当springboot项目运行时候加载自动配置流程,运行原理

点进 @SpringBootApplication  里面

 

里面有个   @EnableAutoConfiguration  它就自动配置的核心类 我们先看看它的源码

 

这里的关键功能是@Import注解导入的配置功能

AutoConfigurationImportSelector 类里 selectImports  方法将 项目所需的自动配置类以数组的形式返回出去

将   spring-boot-autoconfigure-2.0.3.RELEASE.jar  /   META-INF  / spring.factories 里面的自动配置全类名信息存储在List

spring.factories 文件存储全部自动配置类的全类名信息

 

得到全部自动配置类后,将过滤掉不需要的自动配置类

 

最后筛选后的自动配置类,将它们注册到spring容器中。

 

以上为个人对自动配置原理的初步理解,欢迎大佬指点不足

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: