2015-10-26 3 views
1

Я хотел бы увеличить размер файла, который остается в памяти при загрузке в приложение grails (что означает, что он не написан на hdd). Я прочитал некоторые предложения, чтобы определить multipartResolver боб и установить свойство maxInMemorySize:Изменение размера загружаемого файла памяти в grails

multipartResolver(org.springframework.web.multipart.commons.CommonsMultipartResolver){ 
    maxInMemorySize=10240 
} 

Однако я обнаружил, что Grails уже определяет этот компонент, так и с моим определением, я бы переписать все другие параметры, определенные Граалей , Это действительно хороший подход?

ответ

1

Вы правы, что вы, вероятно, удаляете какую-либо конфигурацию, которую делает Grails, и даже если вы скопируете все исходное определение компонента и внесите одно изменение, определение Grails может измениться в будущем, и вы тоже ,

В этом случае, похоже, что вы можете изменить это свойство в любое время; setter в Spring bean устанавливает значение в частном экземпляре DiskFileItemFactory, а looking at its source, похоже, это безопасное изменение.

Поэтому я бы добавил инъекцию зависимостей для bean-компонента в BootStrap и внесение изменений там, например.

class BootStrap { 

    def multipartResolver 

    def init = { 
     multipartResolver.maxInMemorySize = 10240 
    } 
} 
+0

Благодарим за сообщение, вы предпочитаете устанавливать значение в bootstrap над BeanPostProcessor? –

+0

Абсолютно. BeanPostProcessor (и аналогичные типы, такие как BeanFactoryPostProcessor и т. Д.) Являются очень мощными и дают вам доступ к большому количеству информации во время сборки bean-компонентов, но являются излишними для чего-то подобного. –

Смежные вопросы