zoukankan      html  css  js  c++  java
  • 聊聊springboot2的embeded container的配置改动

    本文主要研究下springboot2的embeded container的配置改动

    springboot 1.x

    import org.apache.catalina.connector.Connector;
    import org.apache.coyote.ProtocolHandler;
    import org.apache.coyote.http11.Http11NioProtocol;
    import org.apache.tomcat.util.threads.ThreadPoolExecutor;
    import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
    import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
    import org.springframework.boot.context.embedded.tomcat.TomcatConnectorCustomizer;
    import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
    import org.springframework.boot.web.servlet.ErrorPage;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.http.HttpStatus;
    import org.springframework.stereotype.Component;
    
    
    @Component
    public class EmbeddedTomcatConfig implements EmbeddedServletContainerCustomizer{
    
        @Override
        public void customize(ConfigurableEmbeddedServletContainer container) {
            TomcatEmbeddedServletContainerFactory factory = (TomcatEmbeddedServletContainerFactory)container;
            factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
                @Override
                public void customize(Connector connector) {
                    Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
                    protocol.setMaxConnections(200);
                    protocol.setMaxThreads(200);
                    protocol.setSelectorTimeout(3000);
                    protocol.setSessionTimeout(3000);
                    protocol.setConnectionTimeout(3000);
                }
            });
        }
    }
    通过实现org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer的customize方法来实现自定义

    springboot 2.x

    import org.apache.catalina.connector.Connector;
    import org.apache.coyote.ProtocolHandler;
    import org.apache.coyote.http11.Http11NioProtocol;
    import org.apache.tomcat.util.threads.ThreadPoolExecutor;
    import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
    import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
    import org.springframework.boot.web.server.WebServerFactoryCustomizer;
    import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.core.Ordered;
    import org.springframework.stereotype.Component;
    
    
    @Component
    public class EmbeddedTomcatConfig implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {
    
        @Override
        public void customize(ConfigurableServletWebServerFactory factory) {
            ((TomcatServletWebServerFactory)factory).addConnectorCustomizers(new TomcatConnectorCustomizer() {
                @Override
                public void customize(Connector connector) {
                    Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
                    protocol.setMaxConnections(200);
                    protocol.setMaxThreads(200);
                    protocol.setSelectorTimeout(3000);
                    protocol.setSessionTimeout(3000);
                    protocol.setConnectionTimeout(3000);
                }
            });
        }
    }
    在2.x版本改为实现org.springframework.boot.web.server.WebServerFactoryCustomizer接口的customize方法

    小结

    springboot1.x的相关类如下:

    • org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer
    • org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer
    • org.springframework.boot.context.embedded.tomcat.TomcatConnectorCustomizer
    • org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory

    springboot2.x的相关类如下:

    • org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory
    • org.springframework.boot.web.server.WebServerFactoryCustomizer
    • org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer
    • org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory
    对比一下可以清楚看到相关的改动
  • 相关阅读:
    给伪类设置z-index= -1;
    UITextView的字数限制 及 添加自定义PlaceHolder
    UIView 翻转动画
    viewController的自动扩展属性导致TableViewGroupStyle时向上填充
    指针属性直接赋值 最好先retain 否则内存释放导致crash
    UIButton 点击后变灰
    IOS 设置透明度导致底层View始终可见
    UIDatePicker 时间选择器
    放大Button热区的方法哟
    数组套字典排序
  • 原文地址:https://www.cnblogs.com/JAYIT/p/10863147.html
Copyright © 2011-2022 走看看