java - 使用 spring boot 应用程序属性设置 tomcat 属性

标签 java spring spring-mvc tomcat spring-boot

我想为引导提供的 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 上下文的初始参数)。 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 boot 应用程序属性设置 tomcat 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32250030/

相关文章:

spring-mvc - 带有 Spring WebSocket 的 SockJS 客户端 - CORS

java - 在文件开头追加文本而不删除文件

用于图的集团覆盖的 Java 库

java - aop :scoped-proxy proxy-target-class ="false"? 的注解等价物是什么

spring - 上下文 :property-placeholder doesn't resolve references

java - 如何在spring中使用HandlerInterceptor读取请求参数值?

java - 即使在 Catch 中使用 NextLine,来自扫描仪的用户输入也会导致 try/catch block 中出现无限循环

java - 从kafka高级消费者获取偏移量

spring - 在 springdata-cassandra 中将 null 读取为空集

java - 如何在 IntelliJ IDEA 14 中为当前项目工作配置注释处理?