Grails - OSIV - остановить фильтр «Открыть сеанс в представлении» для статических ресурсов - PullRequest
5 голосов
/ 14 марта 2012

Я тоже кросс-пост в Javaranch тоже. Я сделал мою должную осмотрительность, выполнив поиск Google. Я не нашел никакого ответа.

У нас есть веб-приложение на основе служб REST, для которого бэкэнд реализован с использованием Groovy и Grails (1.3.7 с Groovy 1.7.x). Я понимаю, как Open Session In View работает в целом для Hibernate, и при настройке Hibernate с помощью Spring мы могли бы указать, для какого набора URL OSIV должен работать в конфигурации фильтра.

Проблема в том, что я не могу найти, как исключить набор URL-адресов из области действия фильтра OSIV (например, сопоставление * .js, * .gif и т. Д.). Из журнала Hibernate я обнаружил, что даже для запроса файла Javascript открывается Open Session In View, открывает сеанс и закрывает его.

Заранее спасибо.

1 Ответ

7 голосов
/ 14 марта 2012

Grails имеет две реализации шаблона OSIV, GrailsOpenSessionInViewFilter и GrailsOpenSessionInViewInterceptor.Фильтр использовался в более ранних версиях Grails, но теперь используется перехватчик (по крайней мере, в 1.2, 1.3 и 2.0).Так как это WebRequestInterceptor, оно применяется только к запросам контроллера, а не к статическим запросам на JavaScript, CSS, изображения и т. Д. Поэтому не нужно беспокоиться о производительности из-за ненужного создания и привязки сеанса Hibernate для простых файловых запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...