一尘不染

如何使用Spring Boot和嵌入式Tomcat配置此属性?

spring-boot

我是在application.properties文件中配置诸如connectionTimeout之类的属性,还是在其他地方进行此操作?我无法从Google找到答案。

Tomcat属性列表

我找到了这个Spring-Boot示例,但是它不包含connectionTimeout属性,当我server.tomcat.connectionTimeout=60000在application.properties文件中进行设置时,出现错误。


阅读 258

收藏
2020-05-30

共1个答案

一尘不染

Spring Boot 1.4及更高版本

从Spring Boot 1.4开始,您可以使用属性server.connection-timeout。参见Spring
Boot的通用应用程序属性

Spring Boot 1.3及更早版本

提供定制的EmbeddedServletContainerFactorybean:

@Bean
public EmbeddedServletContainerFactory servletContainerFactory() {
    TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();

    factory.addConnectorCustomizers(connector -> 
            ((AbstractProtocol) connector.getProtocolHandler()).setConnectionTimeout(10000));

    // configure some more properties

    return factory;
}

如果您不使用Java
8或不想使用Lambda表达式,请添加TomcatConnectorCustomizer如下代码:

    factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
        @Override
        public void customize(Connector connector) {
            ((AbstractProtocol) connector.getProtocolHandler()).setConnectionTimeout(10000);
        }
    });

setConnectionTimeout()方法期望超时(以毫秒为单位)(请参阅connectionTimeoutApache Tomcat
8配置参考》
)。

2020-05-30