Spring Boot
应用包含默认的嵌入式Web
容器。
- 对于
servlet
应用,spring-boot-starter-web
通过依赖spring-boot-starter-tomcat
来包含Tomcat
,可以替换成spring-boot-starter-jetty
或spring-boot-starter-undertow
。 - 对于
reactive
应用,spring-boot-starter-webflux
通过依赖spring-boot-starter-reactor-netty
来包含Reactor Netty
,可以替换成spring-boot-starter-tomcat
、spring-boot-starter-jetty
或spring-boot-starter-undertow
。
Spring Boot
基于servlet
和reactive
应用提供的Web
服务器工厂:
Server | Servlet | Reactive |
Tomcat | TomcatServletWebServerFactory | TomcatReactiveWebServerFactory |
Jetty | JettyServletWebServerFactory | JettyReactiveWebServerFactory |
Undertow | UndertowServletWebServerFactory | UndertowReactiveWebServerFactory |
Reactor | 不支持 | NettyReactiveWebServerFactory |
当切换到不同的HTTP
服务器时,需要将默认依赖项替换为所需的依赖项,为了帮助完成这个过程,Spring Boot
为每个受支持的HTTP
服务器提供了一个单独的启动程序。下面的Maven
示例展示了如何将Tomcat
服务器替换成Jetty
服务器:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.2</version>
</parent>
<packaging>jar</packaging>
<groupId>com.kaven</groupId>
<artifactId>springboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot</name>
<description>springboot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
请求也可以正常处理。
替换成其他Web
服务器就不演示了,reactive
应用替换Web
服务器和servlet
应用是一样的操作。Spring Boot
替换Web
服务器就介绍到这里,如果博主有说错的地方或者大家有不同的见解,欢迎大家评论补充。