当前位置:

首页 > 编程开发 > SpringBoot嵌入式Web容器如何使用

SpringBoot嵌入式Web容器如何使用

WebStorm macOS版
WebStorm macOS版

JetBrains WebStorm 是面向 JavaScript、TypeScript 和现代 Web 技术的专业集成开发环境,可智能理解项目结构,提供代码补全、重构、错误检查、运行调试、测试及 Git 工具。

立即下载
Mac 2026-10-14
数据库 编程开发 web开发 服务器管理 集成开发环境

嵌入式Web容器:应用中内置服务器(Tomcat),不用在外部配置服务器了原理SpringBoot项目启动,发现是web应用,引入web场景包-----如:Tomcatweb应用创建一个web版的IOC容器ServletWebServerApplicationContextServletWebServerApplicationContext启动的时候寻找ServletWebServerFactory(Servlet的web服务器工厂,用于生产Servlet服务器)ServletWebServerFacto

本文目录

    嵌入式 Web 容器:应用中内置服务器(Tomcat),不用在外部配置服务器了

    原理

    • SpringBoot 项目启动,发现是 web 应用,引入 web 场景包 ----- 如:Tomcat

    • web 应用创建一个 web 版的 IOC 容器 ServletWebServerApplicationContext

    • ServletWebServerApplicationContext 启动的时候寻找 ServletWebServerFactory (Servlet 的 web 服务器工厂,用于生产 Servlet 服务器)

    • ServletWebServerFactory 底层默认有很多 Web 服务器工厂

    SpringBoot嵌入式Web容器如何使用

    • 底层会自动配置好 ,自动配置类 ServletWebServerFactoryAutoConfiguration

    • ServletWebServerFactoryAutoConfiguration 导入 ServletWebServerFactoryConfiguration 工厂配置类

    ServletWebServerFactoryConfiguration.class

    SpringBoot嵌入式Web容器如何使用

    • 动态判断系统中导入了那个web服务器配置包

    • 如果导入 Tomcat 依赖,会自动放一个 Tomcat 服务器工厂, TomcatServletWebServerFactory 为我们创建出 Tomcat 服务器工厂

    • Tomcat 底层支持如下服务器

    SpringBoot嵌入式Web容器如何使用

    	@Override
    	public WebServer getWebServer(ServletContextInitializer... initializers) {
    		if (this.disableMBeanRegistry) {
    			Registry.disableRegistry();
    		}
    		Tomcat tomcat = new Tomcat();
    		File baseDir = (this.baseDirectory != null) ? this.baseDirectory : createTempDir("tomcat");
    		tomcat.setBaseDir(baseDir.getAbsolutePath());
    		Connector connector = new Connector(this.protocol);
    		connector.setThrowOnFailure(true);
    		tomcat.getService().addConnector(connector);
    		customizeConnector(connector);
    		tomcat.setConnector(connector);
    		tomcat.getHost().setAutoDeploy(false);
    		configureEngine(tomcat.getEngine());
    		for (Connector additionalConnector : this.additionalTomcatConnectors) {
    			tomcat.getService().addConnector(additionalConnector);
    		}
    		prepareContext(tomcat.getHost(), initializers);
    		return getTomcatWebServer(tomcat);
    	}

    总结: 所谓内嵌服务器,就是把我们手动启动服务器的方法放进框架中了。

    应用

    1. 切换Web服务器

    排除 tomcat 服务器,导入 undertow 依赖

           
                org.springframework.boot
                spring-boot-starter-web
                
                    
                        org.springframework.boot
                        spring-boot-starter-tomcat
                    
                
            
            
                org.springframework.boot
                spring-boot-starter-undertow
            

    2. 定制服务器规则

    方法一: 修改 server 下的配置文件

    ServerProperties.class

    SpringBoot嵌入式Web容器如何使用

    server.undertow.accesslog.dir=/tmp

    方法二: 自定义 ConfigurableServletWebServerFactory

    方法三: 自定义 ServletWebServerFactoryCustomizer 定制化器

    作用: 将配置文件的值,与 ServletWebServerFactory 绑定

    SpringBoot 设计: Customizer 定制化器,可以定制 XXX 规则

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 web
    相关文章 更多
    徕卡一瞬相机长焦适配:机型配置与取景预览
    徕卡一瞬相机长焦适配:机型配置与取景预览

    了解徕卡一瞬相机适配界面的机型配置、取景预览和照片风格选择。应用版本、下载入口和镜头调用尚未确认,不将界面状态作为全机型适配或画质提升保证。

    xshell如何安装openclaw 远程部署步骤
    xshell如何安装openclaw 远程部署步骤

    通过Xshell连接Linux服务器,使用npm安装OpenClaw并配置systemd后台服务。利用Xshell的SSH隧道功能将远程控制台映射到本地,实现安全的本地浏览器访问与对话验证。

    xshell 连接 linux 失败 检查端口和防火墙
    xshell 连接 linux 失败 检查端口和防火墙

    解决 Xshell 连接 Linux 失败问题,重点检查 TCP 端口连通性与防火墙设置。使用 Windows PowerShell 测试端口,登录服务器控制台验证 SSH 服务监听及 UFW 规则,确保网络路径畅通后再进行身份验证。

    显卡温度查看注意事项及核心与热点温度判断方法
    显卡温度查看注意事项及核心与热点温度判断方法

    学习如何区分显卡核心温度与热点温度,掌握使用专业工具查看实时数据的方法,了解正常温差范围及高温预警信号,确保显卡稳定运行。

    wps的word用office打开格式乱了怎么办
    wps的word用office打开格式乱了怎么办

    解决WPS文件在Office Word中打开后出现的分页错误、字体变化和图片跑位问题。通过核对字体、页面边距、段落间距和图片布局选项,快速恢复文档原版式,适用于Windows平台用户。

    漫蛙官方入口失效怎么办?查找最新可用域名的方法
    漫蛙官方入口失效怎么办?查找最新可用域名的方法

    漫蛙官方入口经常变动,本文详解如何通过官方社交账号、公告栏及社群获取最新可用域名,确保访问安全,远离虚假链接。

    fences怎么锁定 固定桌面分区位置
    fences怎么锁定 固定桌面分区位置

    详解Windows版Fences软件锁定桌面分区的方法。包括调整布局、勾选Lock Fences选项、验证锁定效果,以及针对Fences 5/6版本缺失菜单时的注册表修复步骤,帮助用户固定桌面图标区域。

    宇树三季报、一加Ace 7 Pro与Gemini 4 Carbon:经营数据和产品参数怎么读?
    宇树三季报、一加Ace 7 Pro与Gemini 4 Carbon:经营数据和产品参数怎么读?

    解析宇树科技营收增长但净利下降的原因,说明一加Ace 7 Pro 185Hz高刷的具体适用场景,并厘清Gemini 4 Carbon在长任务与代码安全方面的开放范围,提供准确的数据阅读方法。

    xshell如何设置显示行数 设置步骤有哪些
    xshell如何设置显示行数 设置步骤有哪些

    在 Xshell 中如何设置显示行数以保留更多历史输出?本文详解 Windows 版 Xshell 8 中调整【滚动缓冲区】的步骤,包括修改会话属性、设置缓冲区数值及验证回滚效果的方法,帮助用户解决输出刷屏后无法查看前文的问题。

    Windows视频自动分段工具怎么用?按段数拆分与输出设置
    Windows视频自动分段工具怎么用?按段数拆分与输出设置

    Windows 视频自动分段工具如何按段数拆分长视频?了解导入素材、设置段数、选择输出目录和查看拆分结果的步骤。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。

    即将离开本站
    您即将前往第三方网站,请确认是否继续?