Spring Boot内置Tomcat
Spring Boot默认支持Tomcat/Jetty/Undertow作为底层容器。在之前实战相关的文章中,可以看到引入spring-boot-starter-web就默认使用tomcat容器,这是为什么呢?
实际通过该starter的pom.xml文件可以得到答案:其引入的就是tomcat容器。
下面分三部分内容解析Tomcat容器配置
一、自动配置原理
关于自动配置的原理,前面几篇文章已经有详细的描述,这里将容器自动配置与其他配置的不同点。
1、自动配置的类而不是直接与Tomcat相关的名称,因为Spring Boot底层默认支持三种容器。
2、打开该类代码:可以看到import了内嵌的三种容器。
进入EmbeddedTomcat类
进入TomcatServletWebServerFactory类中getWebServer方法
继续进入getTomcatWebServer等方法,直到调用tomcat初始化方法,start方法启动tomcat
上面是关于tomcat启动的业务流程,那么它在哪里启动的呢?我们启动Spring Boot项目只有一处,那就是main方法。所以可以肯定是在run方法中调用了,跟踪run方法,可以分析出tomcat启动进程大致如下:
可以理解在spring的refresh方法中调用getWebServer方法,在Spring容器初始化时将Tomcat等容器自动注入并启动。
二、配置tomcat属性
注意属性配置类ServerProperties,通过application.properties可以配置server前缀的属性修改容器默认属性值。
三、替换Tomcat容器
最新文章
- js 中histroy.back()与history.go()的区别
- 拯救无法启动的虚拟机文件.vmdk中的数据
- Unity加载模块深度解析(Shader)
- Asp.net MVC 4新项目中创建area的后续操作
- Microsoft SDK 中Sample案例之Amcap項目 的运行方法(转)
- Palindrome Partitioning
- mysql外键详解
- 【GDOI 2011 DAY2 T3】零什么的最讨厌了 (快速求阶乘、中国剩余定理)
- node.js(七) 子进程 child_process模块
- PHP中GD库安装
- 从头到尾彻底解析Hash表算法
- 我的python之路【第二篇】数据类型与方法
- 强化学习(十五) A3C
- javascript的数组之reverse()
- angular 键盘事件绑定与过滤
- 解決 centos -bash: vim: command not found
- kubeadm 生成的token过期后,集群增加节点
- ASP.NET前台代码绑定后台变量方法总结
- vue 学习笔记1
- C++ Crypto++ RSA加密资料收集
热门文章
- atroot 的个人博客
- 从AAB文件生成APK文件
- Cesium中级教程4 - 空间数据可视化(二)
- Chrome DevTools 面板全攻略
- Android 12(S) 图形显示系统 - SurfaceFlinger的启动和消息队列处理机制(四)
- java ++ -- 异或 短路与 短路或 三目条件
- 学习JAVAWEB第十三天
- SuperPoint: Self-Supervised Interest Point Detection and Description 论文笔记
- 基础学习:关于this在派生类构造函数中的理解
- Docker版本Jenkins的使用