首页 > 编程语言 > 详细

spring boot源码分析

时间:2020-05-16 21:13:13      阅读:61      评论:0      收藏:0      [点我收藏+]

spring boot关键流程分析:

技术分享图片

 

 运行 SpringBootTestApplication.main()

第一个步是加载入口类 SpringBootTestApplication,此类相当于spring的配置类。因为里面包含@configuration注解

技术分享图片

 

 将 SpringBootTestApplication的类文件存入 this.sources集合, 然后推断当前运行环境是不是web环境。

技术分享图片

 

 进入prepareContext方法

技术分享图片

 

 从之前存入到sources集合里面取出 SpringBootTestApplication类文件信息,调用红圈的load方法,把SpringBootTestApplication

转化成beandefiniton类,注册到spring 的beandefintionMap容器

第二步 点击SpringBootTestApplication上的注解,会看到@Import(EnableAutoConfigurationImportSelector.class)。进入

EnableAutoConfigurationImportSelector类,其父类里面

技术分享图片

 

 这里利用spring的功能,动态加载配置类文件,这里动态加载配置类文件,采用高明的spring SPI机制,不懂SPI机制的

另外去看看这方面的资料,最终目的是自动装配第三方组件。在spring boot里面只要把第三方组件的jar包引进来就可以自动装配

纳入spring 容器管理,比如 rabbitMQ,redis客户端,等等。

第三步:

技术分享图片

 

 进入 refreshContext(context)方法 目的就是启动spring 容器,跟进去

技术分享图片

 

 

 

技术分享图片

 

 进入 

invokeBeanFactoryPostProcessors方法
进入后置处理器 ConfigurationClassPostProcessor.processConfigBeanDefinitions()方法
如图:
技术分享图片

 

 进入 parser.parse(candidates) 目的是把 SpringBootTestApplication所在包下的所有类扫描出来,并且注册到spring beandefinitionMap里面

纳入spring 容器管理。

第四部:启动 内嵌的tomcat 整合进spring mvc

技术分享图片

 

 

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 



 

spring boot源码分析

原文:https://www.cnblogs.com/jingzhi-sksk/p/12902012.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!