在SpringBoot框架中,我们使用最多的是Tomcat,这是SpringBoot默认的容器技术,而且是内嵌式的Tomcat。同时,SpringBoot也支持Undertow容器,我们可以很方便的用Undertow替换Tomcat,而Undertow的性能和内存使用方面都优于Tomcat。
1SpringBoot中的Tomcat容器
SpringBoot可以说是目前最火的Java Web框架了。它将开发者从繁重的xml解救了出来,让开发者在几分钟内就可以创建一个完整的Web服务,极大的提高了开发者的工作效率。Web容器技术是Web项目必不可少的组成部分,因为任Web项目都要借助容器技术来运行起来。
在SpringBoot框架中,我们使用最多的是Tomcat,这是SpringBoot默认的容器技术,而且是内嵌式的Tomcat。
2SpringBoot设置Undertow
-
Undertow 是一个采用 Java 开发的灵活的高性能 Web 服务器,提供包括阻塞和基于
NIO
的非堵塞机制。Undertow 是红帽公司的开源产品,是 Wildfly 默认的 Web 服务器。Undertow 提供一个基础的架构用来构建 Web 服务器,这是一个完全为嵌入式设计的项目,提供易用的构建器 API,完全向下兼容Java EE Servlet 3.1
和低级非堵塞的处理器。 -
Undertow的特点
-
高性能 在多款同类产品的压测中,在高并发情况下表现出色。
-
Servlet4.0 支持 它提供了对 Servlet4.0 的支持。
-
Web Socket 完全支持,包括JSR-356,用以满足 Web 应用巨大数量的客户端。
-
内嵌式 它不需要容器,只需通过 API 即可快速搭建 Web 服务器。
-
灵活性 交由链式Handler配置和处理请求,可以最小化按需加载模块,无须加载多余功能。
-
轻量级 它是一个 内嵌Web 服务器, 由两个核心 Jar 包组成
SrpingBoot已经完全集成了Undertow技术, 引入Undertow依赖
移除Tomcat的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
添加Undertow依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
3Tomcat与Undertow的优劣对比
Tomcat是Apache基金下的一个轻量级的Servlet容器,支持Servlet和JSP。Tomcat具有Web服务器特有的功能,包括 Tomcat管理和控制平台、安全局管理和Tomcat阀等。Tomcat本身包含了HTTP服务器,因此也可以视作单独的Web服务器。
但是,Tomcat和ApacheHTTP服务器不是一个东西,ApacheHTTP服务器是用C语言实现的HTTP Web服务器。Tomcat是完全免费的,深受开发者的喜爱。
Undertow是一款灵活的高性能Web服务器,支持阻塞IO和非阻塞IO。由于Undertow采用Java语言开发,可以直接嵌入到Java项目中使用。同时, Undertow完全支持Servlet和Web Socket,在高并发情况下表现非常出色。
标签:容器,Undertow,SpringBoot,Tomcat,Web,服务器
From: https://www.cnblogs.com/KL2016/p/18681405