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. CVPR2020 | PV-RCNN: 3D目标检测
  2. 《Ajax实战》三部曲之“王者归来”
  3. python解决open()函数、xlrd.open_workbook()函数文件名包含中文,sheet名包含中文报错的问题
  4. jquery ajax示例
  5. AIX和linux SSH互信
  6. 软件测试的特殊字符包含什么,测试常见的特殊字符集及接口测试中的测试字符...
  7. Eclipse 内置浏览器
  8. php中冒号是什么,在PHP中:(双冒号)和-(箭头)有什么区别?
  9. HTTP协议中POST、GET、HEAD、PUT等请求方法及相应值得含义
  10. C++纯虚函数与抽象类
  11. NFS介绍,NFS服务端安装配置,NFS配置选项
  12. 人脸图像特征提取方法(HOG、Dlib、CNN)简述
  13. oracle数据库补丁号解释,Oracle数据库版本对应的PSU和补丁号码
  14. atitit.TokenService  token服务模块的设计
  15. Linux下redis基本操作
  16. kvm连接服务器显示不全有重影,KVM多电脑切换器常见故障排查及处理方法
  17. 数据分析【实践】——教育行业指标体系搭建和生命周期维护
  18. python实验心得体会范文大全_万能实验报告心得体会5篇范文
  19. MAC Vmware FUSION网络配置
  20. Unity项目技术方案Dots架构方案简介

热门文章

  1. 【Java 编程】文件操作,文件内容的读写—数据流
  2. android释放全局变量,Android全局变量
  3. python一对一_Python:在数据存储区中建立一对一的关系
  4. 安装eclipse的android adt 插件,eclipse安装ADT插件
  5. if命令在HTML语言中 隐藏部分内容,vuejs使用v-if隐藏不需要的内容,生成的html标签中有!-----,请问怎样去掉这些注释?...
  6. Linux 环境下NFS服务安装及配置
  7. PCB布局中丝印大小及位置调节方法
  8. STM8学习笔记---读取STM8S003单片机序列号
  9. Java中封装、关键字及构造方法
  10. linux虚拟文件系统(四)-文件系统挂载操作分析