spring boot 自定义加载tomcat

来源:互联网 发布:网络歌手靠什么赚钱 编辑:程序博客网 时间:2024/06/14 23:26

该 方法优先使用 application.properties 的配置 适用于application 与自定义一起使用

import org.apache.catalina.connector.Connector;  import org.apache.coyote.http11.Http11NioProtocol;  import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;  import org.springframework.boot.context.embedded.tomcat.TomcatConnectorCustomizer;  import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;  import org.springframework.context.annotation.Bean;  import org.springframework.context.annotation.Configuration;  @Configuration  public class WebServerConfiguration  {      @Bean      public EmbeddedServletContainerFactory createEmbeddedServletContainerFactory()      {          System.out.println("测试开始");        TomcatEmbeddedServletContainerFactory tomcatFactory = new TomcatEmbeddedServletContainerFactory();          tomcatFactory.setPort(8081);          tomcatFactory.addConnectorCustomizers(new MyTomcatConnectorCustomizer());         System.out.println("测试结束");        return tomcatFactory;      }  }  class MyTomcatConnectorCustomizer implements TomcatConnectorCustomizer  {      public void customize(Connector connector)      {          System.out.println("测试开始1");        Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();          //设置最大连接数          protocol.setMaxConnections(2000);          //设置最大线程数          protocol.setMaxThreads(2000);          protocol.setConnectionTimeout(30000);         System.out.println("测试结束1");    }  }  

第二种 默认走配置类

import org.apache.catalina.connector.Connector;  import org.apache.coyote.http11.Http11NioProtocol;  import org.springframework.boot.context.embedded.EmbeddedServletContainer;  import org.springframework.boot.context.embedded.ServletContextInitializer;  import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;  import org.springframework.stereotype.Component;  //组件标签@Component() public class MyEmbeddedServletContainerFactory extends TomcatEmbeddedServletContainerFactory {     public EmbeddedServletContainer getEmbeddedServletContainer(ServletContextInitializer... initializers)          {              //设置端口              this.setPort(8081);              return super.getEmbeddedServletContainer(initializers);          }          protected void customizeConnector(Connector connector)          {              super.customizeConnector(connector);             System.out.println("开始配置tomcat参数");            Http11NioProtocol protocol = (Http11NioProtocol)connector.getProtocolHandler();              //设置最大连接数              protocol.setMaxConnections(2000);             // Tomcat初始化时创建的线程数            protocol.setMinSpareThreads(400);            //设置最大线程数              protocol.setMaxThreads(2000);              protocol.setConnectionTimeout(20000);             System.out.println("配置结束");        }  }