SpringBoot 基于Servlet 规范内嵌 Web 容器,默认无需外置部署 Tomcat,支持无缝切换多款容器;整体分为开源内嵌轻量容器、异步网络容器、传统商业重型容器三大类。
主流包含:Tomcat、Jetty、Undertow、Netty、WebLogic/WebSphere/WildFly,下面逐个拆解核心功能、特点、优缺点、适用场景,最后附选型对比。
一、Apache Tomcat(SpringBoot 默认容器)
核心定位
Java 最经典开源 Servlet 容器,SpringBoot 2.x/3.x 默认内嵌 Web 容器,行业普及率最高,完全实现 Servlet/JSP 官方规范。
主要功能
实现 HTTP/1.1 协议、Servlet 3.x~6.x 规范、JSP 引擎解析;
内置线程池、请求调度、Session 会话管理、Cookie 处理;
支持虚拟主机、静态资源托管、热部署、连接池管理;
兼容传统 Java Web 项目 war 包部署、外置容器部署;
自带监控、日志集成、安全访问控制。
核心特点
生态最成熟、文档资料最全、兼容性拉满、配置简单、社区问题极易排查。
优点
SpringBoot 原生默认,零配置开箱即用,无需额外改依赖;
适配所有 Spring 全家桶、中间件、工作流框架(Flowable/Activiti);
完美支持 JSP、传统 Java EE 老旧项目迁移;
运维工具、监控告警、集群方案极其成熟;
学习成本低,开发、运维人员普遍熟悉。
缺点
默认阻塞式 BIO 模型,高并发、长连接吞吐弱于 Undertow/Jetty;
内存占用偏高,启动速度中等;
原生异步 IO、HTTP2 支持不如专业高性能容器。
应用场景
绝大多数企业后台管理系统、CRUD 业务项目;
传统 Java Web 项目迁移 SpringBoot;
对并发性能无极致要求、追求稳定易维护的业务系统;
政务、普通企业信息化项目首选。
二、Eclipse Jetty
核心定位
轻量级模块化开源 Servlet 容器,主打轻量化、高性能、高适配长连接,微服务常用替代容器。
主要功能
实现 Servlet 规范,支持 HTTP/1.1、HTTP2、WebSocket、SPDY 协议;
异步 IO 调度、模块化架构,可按需裁剪组件;
嵌入式部署、会话集群、静态资源优化、长连接保活;
支持热重载、轻量化集群、资源受限环境适配。
核心特点
体积小、启动快、模块化、原生强支持 WebSocket/HTTP2,轻量化设计。
优点
包体积小、内存占用低、启动速度远快于 Tomcat;
异步 IO 模型,高并发性能优于原生 Tomcat;
原生完美适配 WebSocket 即时通讯、长连接推送;
模块化设计,可剔除冗余依赖,精简部署包;
适合小内存云服务器、容器化微服务部署。
缺点
生态普及度不如 Tomcat,疑难问题网上资料偏少;
对老旧 JSP 兼容性一般(前后端分离项目无影响);
部分小众中间件、老旧框架适配略差。
应用场景
微服务集群轻量化部署;
WebSocket 即时通讯、消息推送、在线聊天室;
HTTP2 接口服务、小程序 / APP 后端服务;
资源受限(低内存)云主机、Docker 容器化项目。
三、Undertow(JBoss/RedHat 出品)
核心定位
SpringBoot 官方主推高性能非阻塞 Web 容器,目前内嵌容器中并发性能天花板,基于 XNIO 异步非阻塞架构。
主要功能
兼容 Servlet 3.1+ 规范,完全非阻塞异步 IO;
支持 HTTP/1.1、HTTP2、WebSocket、零拷贝缓冲区;
自适应线程池,自动适配业务并发量,无需手动调参;
高吞吐请求调度、长连接管理、请求负载均衡。
核心特点
纯异步非阻塞、低内存、高并发、高吞吐、低延迟,极简无冗余设计。
优点
NIO 非阻塞模型,高并发秒杀 Tomcat/Jetty,适合万级并发;
内存占用极低,资源利用率拉满;
原生支持 HTTP2、WebSocket,长连接性能极强;
自适应线程池,运维调参成本低;
无多余组件,架构极简,漏洞攻击面更小。
缺点
生态普及度低,运维经验、故障排查资料少于 Tomcat;
不支持 JSP(前后端分离项目完全不受影响);
高级配置相对晦涩,官方文档友好度一般。
应用场景
高并发接口服务、电商秒杀、限流熔断系统;
物联网设备高长连接接入、百万级设备心跳;
大数据接口、日志采集后端、微服务高并发网关;
对吞吐、延迟有严格要求的核心业务服务。
四、Netty
核心定位
非标准 Servlet 容器,是高性能异步网络通信框架,SpringCloud Gateway、Dubbo、RocketMQ 底层均基于 Netty,可作为 SpringBoot 响应式 Web 容器。
主要功能
事件驱动异步非阻塞网络编程,支持 TCP/UDP/HTTP 自定义协议;
长连接管理、心跳检测、编解码、流量整形、内存池零拷贝;
脱离传统 Servlet 规范,适配响应式编程(WebFlux);
超高并发连接调度,支持十万~百万级长连接。
核心特点
事件驱动、网络性能顶级、协议可自定义、不依赖 Servlet 容器规范。
优点
网络 IO 性能业界顶尖,超高并发、低延迟;
支持自定义私有协议,不限于标准 HTTP;
长连接、物联网、IM 通讯场景最优选择;
适配 Spring WebFlux 响应式编程,适配云原生高并发。
缺点
不兼容传统 Servlet、不能直接使用 Spring MVC 注解开发;
开发门槛高,需掌握事件驱动、网络编程模型;
不适合普通 CRUD 业务,架构过重。
应用场景
SpringCloud Gateway 微服务网关;
IM 即时通讯、物联网设备接入、消息中间件;
自定义 TCP 协议服务、分布式 RPC 服务;
Spring WebFlux 响应式高并发 Web 项目。
五、传统商业重型容器(WebLogic / WebSphere / WildFly)
核心定位
传统 Java EE 全功能重型容器,国企、金融老旧项目专用,SpringBoot 一般不内嵌,仅外置部署 War 包。
主要功能
完整实现 Java EE 全规范(EJB、JTA、分布式事务、JPA);
企业级集群、高可用、容错灾备、统一运维管控平台;
安全合规、权限管控、商业技术支持、版本质保。
核心特点
重型臃肿、商业收费、功能全覆盖、企业级高可用,不适配轻量化微服务。
优点
分布式事务、EJB、大型集群支持极强;
金融、国企合规安全要求适配度高;
老旧大型 Java EE 项目完美兼容。
缺点
体积庞大、启动极慢、内存占用极高;
商业授权收费昂贵,成本高;
不适合云原生、微服务、容器化轻量化部署;
和 SpringBoot 内嵌架构理念冲突,只能外置 War 部署。
应用场景
银行、证券、国企老旧大型 Java EE 项目;
需要 EJB、分布式事务、企业级集群管控的传统系统;
有合规要求、必须使用商业中间件的政企项目。
六、主流 Web 容器核心对比表
表格
七、SpringBoot 容器选型最佳建议
常规业务、后台管理、不求极致性能 → 直接用默认 Tomcat;
微服务、小内存部署、WebSocket 业务 → 选 Jetty;
高并发接口、秒杀、百万级长连接、高吞吐 → 选 Undertow;
微服务网关、IM 通讯、物联网、响应式 WebFlux → 底层 Netty;
银行国企老旧项目、必须 Java EE 商业规范 → 外置 WebLogic/WildFly。
八、补充:SpringBoot 切换内嵌容器方式
只需排除 Tomcat 依赖,引入对应容器即可,无需改业务代码:
切换 Jetty:排除 tomcat,引入 spring-boot-starter-jetty
切换 Undertow:排除 tomcat,引入 spring-boot-starter-undertow
Netty 一般配合 SpringCloud Gateway / WebFlux 使用。
原文链接
欢迎访问 小易撩挨踢