【问题标题】:Grails - OSIV - Stop "Open Session In View" filter for Static ResourcesGrails - OSIV - 停止静态资源的“在视图中打开会话”过滤器
【发布时间】:2012-03-13 20:37:09
【问题描述】:

我也在Javaranch 上发帖。我通过谷歌搜索做了尽职调查。我没有找到任何答案。

我们有一个基于 REST 服务的 Web 应用程序,其后端使用 Groovy 和 Grails(1.3.7 和 Groovy 1.7.x)实现。我了解 Open Session In View 通常如何用于 Hibernate,并且在使用 Spring 配置 Hibernate 时,我们可以指定哪一组 URL,OSIV 应该在过滤器配置中工作。

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

提前致谢。

【问题讨论】:

    标签: grails


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答! - 苏珊塔
    猜你喜欢
    • 2015-08-14
    • 2013-02-10
    • 2019-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多