SpringBoot官方文档——Use Another Web Server
1 前言
SpringBoot 的Web模块默认使用 Tomcat作为内嵌的Servlet容器,同时,SpringBoot还支持Jetty、Undertow等Servlet容器。
Tomcat:是最稳定的服务器,而不是网上各种博主说的Undertow更优。
Jetty:更适合长连接的服务,但是长连接我更倾向于选择Jetty。
Undertow:更适合用于IO密集型服务器,或者文件服务器使用Undertow会是一个不错的选择。
所以,在一般情况下还是老老实实的使用Springboot默认的Tomcat吧。
2 替换为其他嵌入式Servlet容器
以Jetty为例
我们可以把Tomcat的相关依赖在pom.xml
中的spring-boot-starter-web
中剔除掉,使环境不再拥有Tomcat依赖,同时加入Jetty的依赖那么就能使Jetty作为满足条件被SpringBoot选择了。
嵌入式Servlet容器的自动配置原理 GO!!!
2.1 Tomcat(默认使用)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 引入web模块默认就是使用嵌入式的Tomcat作为Servlet容器 -->
</dependency>
2.2 替换为 Jetty
<!-- Jetty 9.4不支持Servlet 4.0 -->
<properties>
<java.version>1.8</java.version>
<servlet-api.version>3.1.0</servlet-api.version>
</properties>
<!‐‐ 引入web模块 ‐‐>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter‐web</artifactId>
<!-- 排除 Tomcat依赖 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!‐‐引入Jetty‐‐>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
注意:
Servlet API的版本已被覆盖,因为与Tomcat 9和Undertow 2.0不同,Jetty 9.4不支持Servlet 4.0。
2.3 替换为 Undertow
<!‐‐ 引入web模块 ‐‐>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter‐web</artifactId>
<!-- 排除 Tomcat依赖 -->
<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-jetty</artifactId>
</dependency>
2.4 替换成功控制台打印结果
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/69768.html