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

smu*_*kes 7 java spring tomcat tomcat8 spring-boot

我是否在application.properties文件中配置了像connectionTimeout这样的属性,或者在其他地方配置它?我无法从谷歌那里得知这一点.

Tomcat属性列表

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

hzp*_*zpz 26

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;
}
Run Code Online (Sandbox Code Playgroud)

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

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

setConnectionTimeout()方法需要以毫秒的超时时间(见connectionTimeout的Apache Tomcat 8配置参考).