zoukankan      html  css  js  c++  java
  • 【转】SpringBoot 2.0.0新版和SpringBoot1.5.2版本中Tomcat配置的差别

    https://blog.csdn.net/wd2014610/article/details/79587161

    2018年春SpringBoot 2.0.0 新版本有了很多新的改变,其中Tomcat配置上也有了很大改变
    1、之前老的版本TomcatEmbeddedServletContainerFactory取的是这个类


    2、在SpringBoot 2.0.0框架中,已经没有类TomcatEmbeddedServletContainerFactory了


    3、在老版本的Tomcat配置中,构造tomcatFactory的bean

    @Bean
    public TomcatEmbeddedServletContainerFactory tomcatFactory() {
    TomcatEmbeddedServletContainerFactory tomcatFactory = new TomcatEmbeddedServletContainerFactory();
    tomcatFactory.addConnectorCustomizers(new GwsTomcatConnectionCustomizer());
    return tomcatFactory;
    }
    1
    2
    3
    4
    5
    6
    4、那么早SpringBoot 2.0.0中该怎么构建呢?
    去到SpringBoot官方文档这里写链接内容、找到Tomcat配置

    5、最新的已经有了全新的类了


    6、事例


    7、那么就可以用全新的ServletWebServerFactory类来构造Tomcat的配置了

    @Bean
    public ServletWebServerFactory servletContainer() {
    TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
    tomcat.addConnectorCustomizers(new GwsTomcatConnectionCustomizer());
    return tomcat;
    }
    1
    2
    3
    4
    5
    6
    8、最后附上全新的Tomcat配置

    package com.gws.configuration;

    import org.apache.catalina.connector.Connector;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
    import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
    import org.springframework.boot.web.servlet.MultipartConfigFactory;
    import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;

    import javax.servlet.MultipartConfigElement;


    /**
    * 使用tomcat配置
    *
    * @version
    * @author
    *
    */
    @Configuration
    public class TomcatConfig {

    @Value("${spring.server.port}")
    private String port;
    @Value("${spring.server.acceptorThreadCount}")
    private String acceptorThreadCount;
    @Value("${spring.server.minSpareThreads}")
    private String minSpareThreads;
    @Value("${spring.server.maxSpareThreads}")
    private String maxSpareThreads;
    @Value("${spring.server.maxThreads}")
    private String maxThreads;
    @Value("${spring.server.maxConnections}")
    private String maxConnections;
    @Value("${spring.server.protocol}")
    private String protocol;
    @Value("${spring.server.redirectPort}")
    private String redirectPort;
    @Value("${spring.server.compression}")
    private String compression;
    @Value("${spring.server.connectionTimeout}")
    private String connectionTimeout;

    @Value("${spring.server.MaxFileSize}")
    private String MaxFileSize;
    @Value("${spring.server.MaxRequestSize}")
    private String MaxRequestSize;

    @Bean
    public ServletWebServerFactory servletContainer() {
    TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
    tomcat.addConnectorCustomizers(new GwsTomcatConnectionCustomizer());
    return tomcat;
    }

    @Bean
    public MultipartConfigElement multipartConfigElement() {
    MultipartConfigFactory factory = new MultipartConfigFactory();
    // 单个数据大小
    factory.setMaxFileSize(MaxFileSize); // KB,MB
    /// 总上传数据大小
    factory.setMaxRequestSize(MaxRequestSize);
    return factory.createMultipartConfig();
    }

    /**
    *
    * 默认http连接
    *
    * @version
    * @author liuyi 2016年7月20日 下午7:59:41
    *
    */
    public class GwsTomcatConnectionCustomizer implements TomcatConnectorCustomizer {

    public GwsTomcatConnectionCustomizer() {
    }

    @Override
    public void customize(Connector connector) {
    connector.setPort(Integer.valueOf(port));
    connector.setAttribute("connectionTimeout", connectionTimeout);
    connector.setAttribute("acceptorThreadCount", acceptorThreadCount);
    connector.setAttribute("minSpareThreads", minSpareThreads);
    connector.setAttribute("maxSpareThreads", maxSpareThreads);
    connector.setAttribute("maxThreads", maxThreads);
    connector.setAttribute("maxConnections", maxConnections);
    connector.setAttribute("protocol", protocol);
    connector.setAttribute("redirectPort", "redirectPort");
    connector.setAttribute("compression", "compression");
    }
    }
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    9、最后在application.properties,进行配置

    #嵌入tomcat配置
    spring.server.port=8095
    #和CPU数
    spring.server.acceptorThreadCount=4
    spring.server.minSpareThreads=50
    spring.server.maxSpareThreads=50
    spring.server.maxThreads=1000
    spring.server.maxConnections=10000
    #10秒超时
    spring.server.connectionTimeout=10000
    spring.server.protocol=org.apache.coyote.http11.Http11Nio2Protocol
    spring.server.redirectPort=443
    spring.server.compression=on
    #文件请求大小
    spring.server.MaxFileSize=300MB
    spring.server.MaxRequestSize=500MB
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    10、好了,搞定了

  • 相关阅读:
    从另一个角度看奋斗史——01.小人之为
    出差!出差!!又是烦人的出差!!!奋斗史无奈暂缓更新~
    出差!出差!!又是烦人的出差!!!奋斗史无奈暂缓更新~
    从另一个角度看奋斗史——01.小人之为
    《那些年啊,那些事——一个程序员的奋斗史》——124
    出差!出差!!又是烦人的出差!!!奋斗史无奈暂缓更新~
    《那些年啊,那些事——一个程序员的奋斗史》——123
    《那些年啊,那些事——一个程序员的奋斗史》——123
    《那些年啊,那些事——一个程序员的奋斗史》——124
    TSINGSEE研发的RTMP视频推流网关是什么?如何使用?
  • 原文地址:https://www.cnblogs.com/exmyth/p/11083781.html
Copyright © 2011-2022 走看看