spring为我们解决hibernate的Session的关闭与开启问题。 
Hibernate 允许对关联对象、属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Session 范围之内进行。如果 Service 层返回一个启用了延迟加载功能的领域对象给 Web 层,当 Web 层访问到那些需要延迟加载的数据时,由于加载领域对象的 Hibernate Session 已经关闭,这些导致延迟加载数据的访问异常

(eg: org.hibernate.LazyInitializationException:(LazyInitializationException.Java:42) 
 - failed to lazily initialize a collection of role: cn.easyjava.bean.product.ProductType.childtypes, no session or session was closed
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: cn.easyjava.bean.product.ProductType.childtypes, no session or session was closed)。

用来把一个Hibernate Session和一次完整的请求过程对应的线程相绑定。目的是为了实现"Open Session in View"的模式。例如: 它允许在事务提交之后延迟加载显示所需要的对象。

而Spring为我们提供的OpenSessionInViewFilter过滤器为我们很好的解决了这个问题。OpenSessionInViewFilter的主要功能是用来把一个Hibernate Session和一次完整的请求过程对应的线程相绑定。目的是为了实现"Open Session in View"的模式。例如: 它允许在事务提交之后延迟加载显示所需要的对象。
 OpenSessionInViewFilter 过滤器将 Hibernate Session 绑定到请求线程中,它将自动被 Spring 的事务管理器探测到。所以 OpenSessionInViewFilter 适用于 Service 层使用HibernateTransactionManager 或 JtaTransactionManager 进行事务管理的环境,也可以用于非事务只读的数据操作中。

<filter>
        <filter-name>Spring OpenSessionInViewFilter</filter-name>
        <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
     <init-param>
    
<!-- 
指定org.springframework.orm.hibernate3.LocalSessionFactoryBean在spring配置文件中的名称,默认值为sessionFactory
     如果LocalSessionFactoryBean在spring中的名称不是sessionFactory,该参数一定要指定,否则会出现找不到sessionFactory的例外
-->
     <param-name>sessionFactoryBean</param-name>
   <param-value>sessionFactory</param-value>
  </init-param> 
    </filter>
    <filter-mapping>
        <filter-name>Spring OpenSessionInViewFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

转载于:https://www.cnblogs.com/w1217/p/5491053.html

OpenSessionInViewFilter 的配置及作用相关推荐

  1. java环境变量设置的作用_JDK环境变量的配置及作用

    从真正接触java到现在,差不多有一年时间了,配置JDK的环境变量也配置过无数次,但是对于这些配置的作用始终有点不太清楚,于是做了一些整理. 对于JDK要配置三个环境变量,分别是JAVA_HOME.p ...

  2. 关于host文件配置,hosts配置的作用,多个域名对应一个ip

    关于host文件配置 host文件其实就是对ip地址的一个映射 普通例子就是大家众所周知的 :localhost域名对应的就是ip网址127.0.0.1 当你访问 127.0.0.1的时候,就会自动映 ...

  3. OpenSessionInViewFilter 对 lazy 加载 的配置及作用

    2019独角兽企业重金招聘Python工程师标准>>> spring为我们解决hibernate的Session的关闭与开启问题. 问题: Hibernate 允许对关联对象.属性进 ...

  4. 【Android Gradle 插件】settings.gradle 配置文件 ( 配置基本作用 | include 函数用法 | 目录层级配置 | 修改 Module 模块构建脚本名称 )

    文章目录 一.settings.gradle 配置 1.基本作用 2.include 函数用法 3.Module 目录层级配置 4.修改 Module 模块的 build.gradle 默认构建脚本名 ...

  5. JAVA安装作用_jdk安装配置及其作用

    2.安装好了就是去配置路径了,我的是win7系统,步骤如下:桌面上的计算机右击->高级系统设置->环境变量->系统变量->新建 一共要新建三个变量JAVA_HOME,PATH和 ...

  6. OpenSessionInViewFilter 的配置

    Spring 为我们提供了一个叫做 OpenSessionInViewFilter 的过滤器,他是标准的 Servlet Filter 所以我们把它按照规范配置到 web.xml 中方可使用.使用中我 ...

  7. STM32中BOOT模式配置的作用

    学习了一段时间stm32单片机, 一直没有搞明白这个Boot 引脚的作用,经过找资料,才算搞明白boot设置, 所谓的启动, 就是我们在程序下载完成后, 重新启动芯片时, SYSCLK的第四个上升沿, ...

  8. 环境变量的配置及作用

    设置环境变量的作用 作用:设置后可以在其他命令窗口中使用该软件的命令脚本: 注意:1 配置或删除环境变量后,执行命令脚本的客户端工具要关掉,重新打开,否则命令脚本不起作用: 2 如果不配置环境变量,那 ...

  9. pkg-config的安装配置及其作用

    最近在安装OpenCV1.0的时候需要用到pkg-config. (一).     首先到网上下载pkgconfig,地址: http://download.chinaunix.net/downloa ...

最新文章

  1. 如何使用阿里云服务器
  2. java上传图片报404_ssm框架上传图片成功后跳转jsp页面显示却404访问不到图片
  3. 2017-2018-1 20155231 《信息安全系统设计基础》第6周学习总结
  4. antd + react model自定义footer_更骚的create-react-app开发环境配置craco
  5. 【转】简述TCP的三次握手过程
  6. Python对区间内回文素数的判断
  7. 实操|风控规则的监控与自动化策略生成
  8. CF1042D Petya and Array
  9. 电话系统服务器,局域网电话系统的两种解决方案——是否需要I
  10. Python 全栈开发二 python基础 字符串 字典 集合
  11. ORB_SLAM2之Pangolin的安装与问题处理
  12. java 字符串数组排序_Java 使用泛型为不同类型数组排序
  13. 阶乘很简单?恕我直言,阶乘相关的面试题你还真不一定懂!
  14. 临床大数据分析与挖掘
  15. LimeSDR官方系列教程(四):To Pothos and Beyond
  16. 计算机无法安装cad怎么办,AutoCAD2014安装失败显示某些产品无法安装怎么办
  17. RC微分积分电路 RC滤波电路 RC脉冲分压器 RC耦合电路 good
  18. R语言学习记录:主成分分析的R实现
  19. 【软件工程】02组软件工程组队项目15周工作进度汇报——课程管理小助手
  20. Apollo代码学习(二)—车辆运动学模型

热门文章

  1. 畅易阁老是显示服务器忙,畅易阁全服开放 盘点天龙玩家卖号的几大原因
  2. mysql数据库文件上传大小控制_[mysql数据库文件大小限制]mysql导入数据库文件最大限制设置...
  3. Hook鼠标和键盘的使用
  4. Opencv_printf
  5. Nginx rewrite规则整理
  6. Java中SQL语句传向数据库
  7. linux虚拟文件系统(四)-文件系统挂载操作分析
  8. (二)ubuntu使用launchpad.net线上编译
  9. RDP协议详细解析(三)
  10. iOS动画:带时分秒指针的时钟动画(上)