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>
請求也可以正常處理。