springboot 加载 tomcat 源码追踪

加载 TomcatServletWebServerFactory 

从  SpringApplication.run()方法进入 

进入到 refresh () 方法

选择实现类  ServletWebServerApplicationContext

 进入到  AbstractApplicationContext

 onRefresh() 方法创建容器

 找到加载bean

得到 webServer 实例

 点击 getWebServer()

 其实现类

 如何知到是哪个实现类呢?接着往下看

自动装配 TomcatServletWebServerFactory

在 spring-boot-autoconfigure 包下找到 spring-autoconfigure-metadata.properties 文件

搜索  javax.servlet.ServletRequest  找到 

ServletWebServerFactoryAutoConfiguration 

核心就在  org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration 

这个配置类中

点击 EmbeddedTomcat.class 进入  ServletWebServerFactoryConfiguration

该类根据项目中是否含有指定的类来加载对应的容器,并创建 ServletWebServerFactory

tomcat 

jetty

Undertow

当 摁下 ctrl 可以跳转,则整明该项目下有这个类,

根据  @ConditionalOnClass 注解 则可以加载  EmbeddedTomcat

否则不能加载

项目因引入该依赖,从而引入了 tomcat 容器

至此, TomcatServletWebServerFactory  随着项目启动加载到了 spring 管理的 bean 当中

上文便可以获取到该工厂,初始化 tomcat 容器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值