如何使用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
。 参考 ,我建议你加入书签。