我想为启动提供的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(如文档中所定义,可用于指定servlet上下文的init参数)。maxSwallowSize是连接器的属性。我猜那是另一回事。
server.context-parameters
maxSwallowSize
我们没有明确的属性,但是您始终可以通过自己的属性进行配置TomcatEmbeddedServletContainerFactory。
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); } } }; }