Grails - OSIV - 停止静态资源的"在视图中打开会话"过滤器

csp*_*der 5 grails

我也在Javaranch中交叉发布.我通过谷歌搜索做了尽职调查.我没有找到任何答案.

我们有一个REST服务基础Web应用程序,后端是使用Groovy和Grails(1.3.7与Groovy 1.7.x)实现的.我理解Open Session In View在Hibernate中的工作原理是什么,当用Spring配置Hibernate时,我们可以指定OSIV应该在过滤器配置中使用哪组URL.

问题是我找不到如何从OSIV过滤器的范围中排除一组URL(如匹配*.js,*.gif等).我从Hibernate日志中发现,即使对于Javascript文件请求,Open Session In View也会启动并打开会话并关闭它.

提前致谢.

Bur*_*ith 7

Grails有两个OSIV模式的实现,GrailsOpenSessionInViewFilterGrailsOpenSessionInViewInterceptor.过滤器在早期版本的Grails中使用,但拦截器现在是使用的(至少在1.2,1.3和2.0中).因为WebRequestInterceptor它只适用于控制器请求而不适用于JavaScript,CSS,图像等的静态请求.因此,对于简单的文件请求不必要地创建和绑定Hibernate会话没有性能问题.