你好,这是一个first-timers-only
问题。这意味着我们一直在努力让那些以前没有为我们的代码库做出过贡献的人,甚至以前没有为开源做出过贡献的人更容易理解。
如果您就是这样,我们有兴趣帮助您迈出第一步,并可以回答您的问题并为您提供帮助。请注意,我们对自由和开源软件中代表性不足的群体的贡献特别感兴趣!
如果您以前曾贡献过,请考虑将这一贡献留给新人,并查看我们的一般ideal-for-contribution
问题。谢谢!
Spring Boot 提供了许多回调接口,可用于定制 Web 服务器。 ATomcatConnectorCustomizer
可用于自定义 Tomcat Connector
。
自定义ProtocolHandler
需要Connector
创建一个TomcatConnectorCustomizer
.从下面的示例可以看出,这有点乏味:
@Bean
public TomcatConnectorCustomizer connectorCustomizer() {
return (connector) -> { ((AbstractHttp11Protocol<?>) connector
.getProtocolHandler()).setProcessorCache(250));
};
}
相反,如果我们添加TomcatProtocolHandlerCustomizer
并自动应用这些 bean,则会将配置简化为以下内容:
@Bean
public TomcatProtocolHandlerCustomizer<AbstractHttp11Protocol<?>> processorCacheCustomizer() {
return (handler) -> handler.setProcessorCache(250);
}
解决方案
添加TomcatProtocolHandlerCustomizer
类型。类型的 Bean TomcatProtocolHandlerCustomizer
应自动应用于TomcatServletWebServerFactory
和TomcatReactiveWebServerFactory
。为此,可以在此处TomcatServletWebServerFactory
完成此操作,并且可以在此处找到反应式配置。
该ObjectProvider
接口可用于注入依赖项。下面是一个示例,当有 0..n 个定制器时,可以使用该示例来注入定制器。