如何自定义spring boot嵌入式tomcat线程池?

时间:2020-03-30 13:33:11

标签: java spring spring-boot tomcat

Tomcat体系结构由以下元素组成:服务器=>服务=>引擎=>主机=>上下文 tomcat architecture

在配置标准Tomcat服务器时,我们可以通过在server.xml文件中指定以下内容来配置自定义线程池:(以下为伪代码)

<Server>
  <Service name="Catalina">
    <Connector port="8080"/>
    <Executor name="custom-pool" className="my.package.poolImplementation" />
    <Engine name="Catalina" defaultHost="localhost">  
      <Here be more elements />
    </Engine>
  </Service>
</Server>

(特别是执行器名称=“ custom-pool” className =“ my.package.poolImplementation”

如何配置Spring Boot以允许以编程方式执行相同的行为?
(不使用Spring配置文件)

无论我在哪里搜索,或尝试了多么努力,都找不到任何答案或示例。
预先感谢

1 个答案:

答案 0 :(得分:0)

我查找了一些源代码(请参阅TomcatServletWebServerFactory.java / ServletWebServerFactoryConfiguration.java),并找到了实现此目标的方法。

@Bean
public TomcatProtocolHandlerCustomizer<?> tomcatProtocolHandlerCustomizer() {
    return protocolHandler -> {
        protocolHandler.setExecutor(...);
    };
}