diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer.java index 903bba0866..04b965d1c9 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/embedded/TomcatWebServerFactoryCustomizer.java @@ -136,6 +136,13 @@ public class TomcatWebServerFactoryCustomizer implements }); } + private void customizeProcessorCache(ConfigurableTomcatWebServerFactory factory, + int processorCache) { + factory.addConnectorCustomizers(( + connector) -> ((AbstractHttp11Protocol) connector.getProtocolHandler()) + .setProcessorCache(processorCache)); + } + private void customizeMaxConnections(ConfigurableTomcatWebServerFactory factory, int maxConnections) { factory.addConnectorCustomizers((connector) -> { @@ -158,13 +165,6 @@ public class TomcatWebServerFactoryCustomizer implements }); } - private void customizeProcessorCache(ConfigurableTomcatWebServerFactory factory, - int processorCache) { - factory.addConnectorCustomizers(( - connector) -> ((AbstractHttp11Protocol) connector.getProtocolHandler()) - .setProcessorCache(processorCache)); - } - private void customizeRemoteIpValve(ConfigurableTomcatWebServerFactory factory) { Tomcat tomcatProperties = this.serverProperties.getTomcat(); String protocolHeader = tomcatProperties.getProtocolHeader(); diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/ServerPropertiesTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/ServerPropertiesTests.java index 64bcafe250..2872caddb4 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/ServerPropertiesTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/ServerPropertiesTests.java @@ -206,6 +206,12 @@ public class ServerPropertiesTests { .isEqualTo(getDefaultProtocol().getAcceptCount()); } + @Test + public void tomcatProcessorCacheMatchesProtocolDefault() throws Exception { + assertThat(this.properties.getTomcat().getProcessorCache()) + .isEqualTo(getDefaultProtocol().getProcessorCache()); + } + @Test public void tomcatMaxConnectionsMatchesProtocolDefault() throws Exception { assertThat(this.properties.getTomcat().getMaxConnections()) diff --git a/spring-boot-project/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc b/spring-boot-project/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc index 32e6246746..57c33719e6 100644 --- a/spring-boot-project/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc +++ b/spring-boot-project/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc @@ -276,7 +276,7 @@ content into your application. Rather, pick only the properties that you need. server.tomcat.max-threads=200 # Maximum amount of worker threads. server.tomcat.min-spare-threads=10 # Minimum amount of worker threads. server.tomcat.port-header=X-Forwarded-Port # Name of the HTTP header used to override the original port value. - server.tomcat.processor-cache= # Maximum number of idle processors that will be retained in the cache and reused with a subsequent request. + server.tomcat.processor-cache=200 # Maximum number of idle processors that will be retained in the cache and reused with a subsequent request. server.tomcat.protocol-header= # Header that holds the incoming protocol, usually named "X-Forwarded-Proto". server.tomcat.protocol-header-https-value=https # Value of the protocol header indicating whether the incoming request uses SSL. server.tomcat.redirect-context-root=true # Whether requests to the context root should be redirected by appending a / to the path.