SpringBoot内置Tomcat 配置和切换

409 阅读2分钟

SpringBoot内置Tomcat 配置和切换

基本介绍

SpringBoot 支持的webServer: Tomcat, Jetty, or Undertow默认是Tomcat

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

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

内置Tomcat 的配置

通过application.yml 完成配置

配置和ServerProperties.java 关联, 通过查看源码得知有哪些属性配置

application.yml配置


server:
  #配置端口
  port: 9999
  tomcat: #对tomcat配置
    threads:
      max: 10 #最大的工作线程, 默认是200
      min-spare: 5 #最小工作线程, 默认是10
    accept-count: 200 #tomcat启动的线程达到最大值, 接受排队的请求个数,默认100
    max-connections: 2000 #最大连接数, 并发数
    connection-timeout: 10000 #建立连接的超时时间, 单位是毫秒
    #还有很多其它的配置,就不一一列

对上面代码解释一下方便理解

 

通过类来配置Tomcat

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

这个跟yml文件配置差不多一样的就是 .setxx设置

/**
 * 通过类来配置Tomcat
 */
@Component
public class CustomizationBean implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {

    @Override
    public void customize(ConfigurableServletWebServerFactory server) {
        server.setPort(10000); //我们设置了server的端口为10000
    }
}

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

切换WebServer, 演示如何切换成Undertow 

修改pom.xml , 排除tomcat , 加入Undertow 包的依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <!-- 引入spring-boot-starter-web 排除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-undertow</artifactId>
    </dependency>

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

运行项目,完成测试

 如果不知道的可以去看看上一篇博客有一个页面的介绍 不看也没有关系

这里主要演示切换tomato 到其他的服务 不会对页面访问造成任何影响 这个结论

这个页面的链接

 

 测试完毕,我还是改回成Tomcat 这个习惯