定制内嵌Tomcat开发
springboot内嵌了tomcat。当我们需要修改tomcat的配置时,只需在application.properties中修改就可以了。
但有些配置并不囊落在自动配置中,我们还是需要手写配置类。
- keepAliveTimeOut:多少毫秒后不响应的自动断开
- maxKeepAliveRequests:多少次请求后,断开连接
@Component
public class WebServerConfiguration implements WebServerFactoryCustomizer<ConfigurableWebServerFactory> {
@Override
public void customize(ConfigurableWebServerFactory factory) {
//使用对应工厂类提供的接口定制化tomcat connector
((TomcatServletWebServerFactory)factory).addConnectorCustomizers(new TomcatConnectorCustomizer() {
@Override
public void customize(Connector connector) {
Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
//定制化keepalivetimeout 设置30s内没有请求 服务端自动断开连接
protocol.setKeepAliveTimeout(30000);
//当客户端发送超过10000个请求,自动断开连接
protocol.setMaxKeepAliveRequests(10000);
}
});
}
}