Spring Boot中支持了很多种嵌入式Web容器,这些Web运用容器可以直接在运用程序的JAR包中运行,它们不须要独立支配到外部的Web容器中。
这些嵌入式Web容器为Spring Boot运用供应了简便的开拓和支配办法,尤其适宜微做事架构。
下面我们就来详细的先容一下Spring Boot中常见的嵌入式Web容器及其先容。

Tomcat

嵌入式Tomcat是Spring Boot默认的Web容器。
Tomcat是Apache基金会的一个轻量级Servlet容器,支持Servlet、JSP等Java EE技能。
Spring Boot集成了Tomcat,使其可以作为嵌入式容器运行Spring MVC或Spring WebFlux运用。

特点

websocket支持jsp么Spring Boot 支撑哪些嵌入Web容器 Java

默认容器,配置简便。
支持HTTP/2、Servlet、JSP和WebSocket。
性能较为精良,适宜大多数Web运用。
支持通过application.properties进行配置,例如设置端口号、线程池等。

我们可以通过在application.properties文件中对其进行配置。

Jetty

嵌入式Jetty是一个高度可配置和模块化的Web做事器和Servlet容器。
Jetty非常轻量,适宜那些对内存占用敏感的运用处景,如嵌入式设备或须要灵巧定制的运用。

特点

模块化,轻量级,性能稳定。
可以用于嵌入式和大型运用,灵巧配置。
支持HTTP/2、Servlet、JSP、WebSocket。
常用于一些高并发和低内存需求的场景。

默认情形下Spring Boot利用Tomcat,可以通过引入spring-boot-starter-jetty来更换为Jetty,如下所示。

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId></dependency>Undertow

嵌入式Undertow是一个轻量级、高性能的Web做事器,由RedHat供应。
它不仅支持Servlet规范,还可以作为非壅塞的HTTP做事器。
Undertow的上风在于其大略的API和高吞吐量,适宜那些对性能有极高哀求的场景。

特点

极轻量级,性能精良。
支持Servlet、WebSocket,且可以作为完备异步的Web做事器。
内存占用较小,非常适宜高并发场景。
支持HTTP/2。

类似于Jetty,想要利用Undertow,须要更换为spring-boot-starter-undertow,如下所示。

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-undertow</artifactId></dependency>Reactor Netty(WebFlux)

Reactor Netty是Spring WebFlux的默认容器,用于构建非壅塞、相应式的Web运用。
与传统的Servlet容器不同,Reactor Netty基于Reactor模式和Netty框架,旨在处理高并发和相应式需求。

特点

紧张用于相应式编程,支持完备异步的编程模型。
高性能,支持HTTP/2。
利用Netty作为底层网络引擎,适宜构建当代的非壅塞运用。

在Spring WebFlux中,Reactor Netty是默认的Web容器。
如果利用WebFlux,Spring Boot会自动引入Reactor Netty,无需额外配置。

总结

这些容器供应了不同的性能特性和适用场景,我们可以根据详细需求选择得当的嵌入式Web容器。