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

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

Tomcat属性列表

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

Spring Boot 1.4及更高版本

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

Spring Boot 1.3及更早版本

提供自定义的EmbeddedServletContainerFactory bean:

 @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()方法需要以毫秒为单位的超时(请参阅Apache Tomcat 8配置参考中的 connectionTimeout )。

我更喜欢在服务器启动之前设置一组系统属性:

 /** * Start SpringBoot server */ @SpringBootApplication @ComponentScan(basePackages = "com.your.conf.package") public class Application { public static void main(String[] args) throws Exception { System.setProperty("server.port","8132")); System.setProperty("server.tomcat.max-threads","200")); System.setProperty("server.connection-timeout","60000")); ApplicationContext ctx = SpringApplication.run(Application.class, args); } } 

实际上应该是你的application.properties server.connection-timeout 。 参考 ,我建议你加入书签。