Spring Boot(三):Spring Boot自动加载源码解析

 2019-10-17 21:49  阅读(1207)
文章分类:Spring boot

版本:Spring Boot:已经吃了很多关于版本的亏!看之前先看版本信息。

<parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.1.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>

SpringBoot在进行SpringApplication对象实例化时会加载META-INF/spring.factories文件,将该配置文件中的配置载入到Spring容器。该文件的位置如图:

20191017100198\_1.png

源码分析:

一、从入口开始跟进

20191017100198\_2.png

二、跟进run()方法

20191017100198\_3.png

三、只执行了一个run()方法,继续跟进

20191017100198\_4.png

四、可以看到只创建了一个对象,我们跟进构造函数

20191017100198\_5.png

五、看到他调用的是this方法,其实就是下边的构造方法2

六、在构造中有一个方法三

20191017100198\_6.png

七、跟进getSpringFactoriesInstances()

20191017100198\_7.png

八、欢呼雀跃吧,loadFactoryNames()就是加载文件的方法

loadFactoryNames方法的作用是把/spring.factories文件中的配置类转化为对象,我们可以看到SpringApplication对象实例化时就是在这里加载META-INF/spring.factories文件

九、如果我们想排除一个自动引入的jar可以

20191017100198\_8.png

十、查看Spring Boot自带的自动配置的包: spring-boot-autoconfigure-1.5.6.RELEASE.jar,打开其中的META-INF/spring.factories文件会找到自动配置的映射。

20191017100198\_9.png

再来看看数据源自动配置的实现注解

怎么找到源码文件?按着command+单击username或password,进去九一切了然

20191017100198\_10.png

20191017100198\_11.png


来源:[]()

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> Spring Boot(三):Spring Boot自动加载源码解析

相关推荐