grails中内存上传文件大小的变化
Posted
技术标签:
【中文标题】grails中内存上传文件大小的变化【英文标题】:Change in memory upload file size in grails 【发布时间】:2015-10-26 15:12:56 【问题描述】:我想增加文件大小,将其上传到 grails 应用程序时会保留在内存中(这意味着它不会写入硬盘)。我已经阅读了一些定义 multipartResolver bean 并设置 maxInMemorySize 属性的建议:
multipartResolver(org.springframework.web.multipart.commons.CommonsMultipartResolver)
maxInMemorySize=10240
但是我发现 grails 已经定义了这个 bean,所以我的定义将覆盖 grails 定义的所有其他设置。这真的是个好方法吗?
【问题讨论】:
【参考方案1】:您是正确的,您可能正在删除 Grails 所做的某些配置,即使您复制整个原始 bean 定义并进行更改,Grails 定义将来也可能会更改,您也会阻止这种情况发生。
在这种情况下,您似乎可以随时更改此属性; Spring bean 中的 setter 将值设置在 DiskFileItemFactory
的私有实例上,looking at its source 看起来这是一个安全的更改。
所以我会在 BootStrap 中为 bean 添加依赖注入并在那里进行更改,例如
class BootStrap
def multipartResolver
def init =
multipartResolver.maxInMemorySize = 10240
【讨论】:
感谢您的回复,您愿意在引导程序中设置值而不是 BeanPostProcessor 吗? 当然。 BeanPostProcessor(以及类似的类型,如 BeanFactoryPostProcessor 等)非常强大,可以让您在 bean 构建期间访问大量信息,但对于这样的事情来说太过分了。以上是关于grails中内存上传文件大小的变化的主要内容,如果未能解决你的问题,请参考以下文章