2012-03-13 44 views
5

我也在Javaranch中過帳。我通過Google搜索進行了盡職調查。我沒有找到任何答案。Grails - OSIV - 停止靜態資源中的「查看打開會話」過濾器

我們有一個REST服務基礎Web應用程序,後端使用Groovy和Grails(1.3.7和Groovy 1.7.x)實現。我理解Open Session In View在Hibernate中的工作原理,以及在Spring中配置Hibernate時,我們可以指定OSIV應該在過濾器配置中工作的URL集合。

問題是我找不到如何從OSIV過濾器的範圍(如匹配* .js,* .gif等)中排除一組URL。我從Hibernate日誌中發現,即使對於JavaScript文件請求,Open Session In View也會啓動並打開一個會話並關閉它。

在此先感謝。

回答

7

Grails有兩種OSIV模式的實現,GrailsOpenSessionInViewFilterGrailsOpenSessionInViewInterceptor。該過濾器用於早期版本的Grails,但攔截器現在用於(至少在1.2,1.3和2.0)。由於它是WebRequestInterceptor,它僅適用於控制器請求,而不適用於JavaScript,CSS,圖像等的靜態請求。因此,對於爲簡單文件請求不必要地創建和綁定Hibernate會話而言,不存在性能問題。

+0

感謝您的回答! - Susanta – cspider 2012-03-13 21:31:41

+0

隨時接受它作爲正確的答案:) – 2012-03-13 23:02:45