Springboot如何启动内嵌tomcat

news2025/1/23 2:13:51

只需要引入如下依赖即可: 

 1.首先判断容器的类型,这里是servlet类型

org.springframework.boot.WebApplicationType#deduceFromClasspath

2.根据容器类型创建容器:

org.springframework.boot.SpringApplication#createApplicationContext 

看下类图结构:

 

 

3.刷新容器:

自然是调用父类的刷新方法

org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext#refresh

最后回调到父类的方法:

org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext#onRefresh

 4.看下如何创建tomcat对象,然后启动容器:

org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext#getWebServerFactory

这里为什么能拿到tomcat的容器:,后续自动装配详细解释 

org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory#getWebServer

 到此tomcat启动结束。

我们看看如何自动注入tomcat的?

org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration

org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration

org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration

 

org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryConfiguration

 

就这样制动注入一个tomcat的工厂结束了,整个web启动就结束了 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/434126.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单链表面试题思路分享二

单链表面试题思路分享二 前言1.合并两个有序链表1.1 审题1.2 代码实现1.3 代码优化 2. 链表的分割2.1 审题2.2 代码实现 3. 链表的回文结构3.1 审题3.2 代码实现 4. 链表相交4.1 审题4.2 代码实现4.3 方法二的实现 5. 总结 前言 我们紧接上文单链表面试题分享一来看看本章我要分…

解决PySide6/PyQT的界面卡死问题(PySide6/PyQT多线程

前言 问:在使用 PySide6 时候,会出现应用程序卡死的问题。 答:为什么会出现这个问题呢?PySide6 应用程序是基于事件驱动的,主线程负责处理GUI事件。如果有耗时的操作任务,GUI 事件将被阻塞,应用…

发送封包协议实现XXZ批量秒分解装备

通过发送封包,我们可以让一些反复的枯燥的行为变的简单,高效。 比如XXZ的萃取装备,我们可以一瞬间萃取大量的装备,而省去读条的过程。 我们来萃取一下看看效果 手动萃取是有读条的,那么如果很多装备的话,…

OAuth2.0 实践 Spring Authorization Server 搭建授权服务器 + Resource + Client

title: OAuth2.0 实践 Spring Authorization Server 搭建授权服务器 Resource Client date: 2023-03-27 01:41:26 tags: OAuth2.0Spring Authorization Server categories:开发实践 cover: https://cover.png feature: false 1. 授权服务器 目前 Spring 生态中的 OAuth2 授…

ArcGISPRO 和 ChatGPT集成思路

“我们如何一起使用 ArcGIS PRO 和 ChatGPT?”ArcGIS Pro 是一款功能强大的桌面 GIS 软件,用于制图、空间分析和数据管理。ChatGPT 是一种 AI 语言模型,可用于自然语言处理任务,例如文本生成和响应。 结合使用 ArcGIS Pro 和 Chat…

工业互联网业务知识

文章目录 背景第四次工业革命带动制造业产业升级主要工业大国不同路径 架构ISA95体系架构变革趋势基础通用架构数据采集平台 工业互联网应用软件工业互联网全要素连接产品视角:产销服务企业的业务流程企业数字化改造:车间级全要素连接 工业互联网的产品体…

Perl检查环境配置

最近部署Perl环境,但是不确定安装完成,看到有个内置监测的,记录下 perl bin/otrs.CheckModules.pl

数据类型及变量的定义、使用和注意事项

数据类型 计算机存储单元 变量的定义格式: 数据类型 变量名数据值; 我们知道计算机是可以用来存储数据的,但是无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位( bit ) ",我们又称之为“比特位”,通常用…

生态-化学反应

生态,确实需要化学反应。但是如果不知道化学反应的各种前置条件,化学反应是不可能反应的。所以我们需要了解这些知识,并且把这些知识迁移到人类社会经济活动中。最厉害的人就是:范式提炼-范式迁移。 老贾就是不知道这些知识&#…

Poseidon Hash

之前我们介绍了zk友好的哈希函数Anemoi,今天我们介绍另一种zk友好的哈希函数Poseidon Poseidon采用 sponge/squeeze 结构,该结构吸纳万物并生成固定大小的输出,内部有一个状态 S ( s 1 , s 2 , . . . , s t ) S(s_1,s_2,...,s_t) S(s1​,s2…

真题详解(UML部署图)-软件设计(五十二)

真题详解(地址索引)-软件设计(五十一)https://blog.csdn.net/ke1ying/article/details/130211684 瀑布模式:适应 开发大型项目,且需求明确。 演化模式:适应 对软件需求缺乏准确认知。 螺旋模式&#xff…

C语言CRC-32 MPEG-2格式校验函数

C语言CRC-32 MPEG-2格式校验函数 CRC-32校验产生4个字节长度的数据校验码,通过计算得到的校验码和获得的校验码比较,用于验证获得的数据的正确性。基本的CRC-32校验算法实现,参考: C语言标准CRC-32校验函数 不同应用规范通过对输…

阿里JAVA架构师面试136题含答案:JVM+spring+分布式+并发编程

此文包含 Java 面试的各个方面,史上最全,苦心整理最全Java面试题目整理包括基JVM算法数据库优化算法数据结构分布式并发编程缓存等,使用层面广,知识量大,涉及你的知识盲点。要想在面试者中出类拔萃就要比人付出更多的努…

Baklib在线知识库/帮助中心:让知识无限延伸

在今天这个信息爆炸的时代,各行各业都需要一个高效的知识管理系统来帮助他们更好地组织和分享知识。Baklib在线知识库/帮助中心就是这样一个优秀的工具,它可以帮助您轻松地创建、管理和分享知识,让您的团队和客户更加高效地工作。 什么是Bakl…

Linux进程控制【进程程序替换】

✨个人主页: Yohifo 🎉所属专栏: Linux学习之旅 🎊每篇一句: 图片来源 🎃操作环境: CentOS 7.6 阿里云远程服务器 Good judgment comes from experience, and a lot of that comes from bad jud…

ESXI 6.7全面系统教程~汇总

ESXI 6.7全面系统教程 许可证:0A65P-00HD0-375M1-M097M-22P7H esxi 是一个脱机系统,也是一个虚拟机系统与vmware 相比,它可以直接运行在硬件上,这样可以减少资源浪费,一般用于服务器上;下面是esxi 的完整…

PasteSpider之服务器介绍

在PasteSpider中服务器作为重要的一个对象,编译,构建,执行等都是服务器在执行,所以如何新建和服务器的各项属性介绍尤为重要! 在菜单基础信息 服务器 点击 新增 按钮,可以看到如下图 我们从上面开始往下介…

SSR在天猫优品大促会场的探索实践

BBC 发现其网站加载时间每增加一秒,用户便会流失 10%。为提高页面的秒开率,我们不断探索着优化策略,仅仅在浏览器领域下的优化已经满足不了我们的极致要求,开始往服务端方向不断探索。本文将讨论业务接入SSR的几个问题&#xff1a…

《3-链表》

链表 引言: 存储数组需要内存空间连续,当我们需要申请一个很大的数组时,系统不一定存在这么大的连续内存空间。 而链表则更加灵活,不需要内存是连续的,只要剩余内存空间大小够用即可 1.定义 : 「链表 Lin…

设计模式-结构型模式之装饰模式

3. 装饰模式3.1. 模式动机一般有两种方式可以实现给一个类或对象增加行为:继承机制使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制…