SpringBoot怎么配置和切换Tomcat

1.基本介绍

SpringBoot 支持的 webServer: Tomcat, Jetty, or Undertow

SpringBoot经验分享:如何优雅配置和切换Tomcat

SpringBoot 应用启动是 Web 应用时。web 场景包-导入 tomcat

支持对 Tomcat(也可以是 Jetty 、Undertow)的配置和切换

2.内置 Tomcat 的配置1.通过 application.yml 完成配置

server: #配置端口 port: 9999 #对tomcat进行配置 tomcat: threads: #表示最大的工作线程(银行有10个柜台,每个柜台处理200个请求 10*200=最大连接数),默认是200 max: 10 #最小工作线程默认是10 min-spare: 5 #tomcat启动的线程达到最大值,接受排队的请求个数,默认100 accept-count: 200 #最大连接数,并发数 max-connections: 2000 #建立连接的超时时间,默认20秒,单位毫秒 connection-timeout: 10000

2.通过类来配置 Tomcat

通过类来配置 Tomcat(说明: 配置文件可配置的更全.)

注销 application.yml 对 tomcat 配置,完成测试

/**
* 通过类来配置Tomcat
*/
@Component
public class CustomizationBean implements WebServerFactoryCustomizer<
ConfigurableServletWebServerFactory>
{
@Override
public void customize(ConfigurableServletWebServerFactory server) {
server.setPort(10000);
//我们设置了server的端口为10000
}
} 3.切换 WebServer

演示如何切换成 Undertow

1.排除调内嵌的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>

2.引入undertow依赖

<
!-- 引入 undertow -->

<
dependency>

<
groupId>
org.springframework.boot<
/groupId>

<
artifactId>
spring-boot-starter-undertow<
/artifactId>

<
/dependency>

3.说明: 因为去掉了 tomcat 的依赖,所以项目有使用到 tomcat 相关类/接口,就会报 错,注销/删除这部分代码即可 , 运行项目,完成测试



Spring Boot是一个非常方便的快速开发框架,但是当我们需要对Tomcat进行一些优化或者切换不同版本的时候,该如何操作呢?本篇文章将为大家详细介绍SpringBoot的Tomcat配置和切换方法。
一、修改Tomcat端口号
有时候我们需要对Tomcat的端口号进行修改,这时可以通过修改Spring Boot配置文件application.yml实现。在配置文件中加入以下内容:
server:
port: 9999
其中port即为需要修改的端口号,这里配置的是9999。修改完成后重新打包运行即可。
二、配置Tomcat部署路径
默认情况下SpringBoot使用的Tomcat部署路径为/tmp/tomcat.xxxx,但是由于这是在系统的/tmp目录下,所以会出现随系统重启而清除的情况。我们可以通过以下方式配置Tomcat的部署路径:
server:
tomcat:
basedir: /data/tomcat
其中basedir为Tomcat的部署路径,这里配置的是/data/tomcat。配置完成后重新打包运行即可。
三、切换Tomcat版本
SpringBoot默认使用的是Tomcat Embed,如果需要切换使用其他版本的Tomcat,这时我们需要在pom.xml中添加以下代码:

org.apache.tomcat.embed
tomcat-embed-core
10.0.0-M6

其中version为需要使用的Tomcat版本。修改完成后重新编译即可。
四、使用外部Tomcat
除了切换版本,有时候我们还需要使用外部Tomcat进行部署。这时我们可以在pom.xml中排除Tomcat Embed依赖,然后手动将war包部署到外部Tomcat的webapps目录下。

\torg.springframework.boot
\tspring-boot-starter-web
\t
\t
\t org.springframework.boot
\t spring-boot-starter-tomcat
\t

\t


五、配置Tomcat线程池
在高并发情况下,Tomcat的默认线程池可能会出现性能瓶颈。这时我们可以通过以下方式配置Tomcat的线程池:
server:
tomcat:
max-threads: 200
accept-count: 100
其中max-threads为最大线程数,accept-count为最大请求队列长度。根据实际情况进行配置即可。
六、配置Tomcat SSL证书
在安全性要求比较高的场景下,我们需要为Tomcat配置SSL证书。可以通过以下方式进行配置:
server:
port: 443
ssl:
key-store: keystore.jks
key-store-password: password
key-store-type: JKS
其中key-store为证书文件路径,key-store-password为证书密码,key-store-type为证书类型。配置完成后重新打包运行即可。
七、总结
SpringBoot的Tomcat配置和切换非常方便,只需要简单修改配置文件或者pom.xml即可实现。根据不同的需求,选择最合适的方式进行配置即可!