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

扫码关注公众号:Java 技术驿站

发送:vip
将链接复制到本浏览器,永久解锁本站全部文章

【公众号:Java 技术驿站】 【加作者微信交流技术,拉技术群】

版本: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) 打赏
版权归原创作者所有,任何形式的转载请联系博主:daming_90:Java 技术驿站 » Spring Boot(三):Spring Boot自动加载源码解析

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏