编程语言
首页 > 编程语言> > java – 使用spring启动应用程序属性设置tomcat属性

java – 使用spring启动应用程序属性设置tomcat属性

作者:互联网

我想为引导提供的tomcat设置maxSwallowSize属性.
我的application.properties有这一行:

server.context-parameters.maxSwallowSize=20971520 

由于某种原因不起作用. server.port等其他属性运行良好.
在TomcatEmbeddedServletContainerFactory中调试创建我看到有一个带有此属性的ServletContexInitializer(InitParameterConfiguringServletContextInitializer),但它似乎没有以任何方式使用. (即使它在变量名中initializersToUse,具有讽刺意味; p)

当上传超过设置的最大尺寸时,我不喜欢杀死连接

multipart.max-request-size=10MB
multipart.max-file-size=2MB

这是设置此属性的正确方法吗?在调试过程中,我可以看到IdentityInputFilter的默认值为2MB.

最新版本的org.springframework.boot:spring-boot-starter-web

解决方法:

server.context-parameters(因为defined in the documentation可用于指定servlet上下文的init参数). maxSwallowSize是连接器的属性.我想这是另一回事.

我们没有明确的属性,但您始终可以通过自己的TomcatEmbeddedServletContainerFactory进行配置.

@Bean
public TomcatEmbeddedServletContainerFactory containerFactory() {
    return new TomcatEmbeddedServletContainerFactory() {
        protected void customizeConnector(Connector connector) {
            super.customizeConnector(connector);
            if ((connector.getProtocolHandler() instanceof AbstractHttp11Protocol) {
                (AbstractHttp11Protocol <?>) connector.getProtocolHandler()).setMaxSwallowSize(value);
            }
        }
    };

}

标签:java,spring-mvc,spring,tomcat,spring-boot-2
来源: https://codeday.me/bug/20190717/1489022.html