Spring 为我们提供了一个叫做 OpenSessionInViewFilter 的过滤器,他是标准的 Servlet Filter 所以我们把它按照规范配置到 web.xml 中方可使用。使用中我们必须配合使用 Spring 的 HibernateDaoSupport 来进行开发,也就是说,我们的dao层的类都要继承于 HibernateDaoSupport,从中由 Spring 来控制 Hibernate 的 Session 在请求来的时候开启,走的时候关闭,保证了我们访问数据对象时的稳定性。

  1. 在 web.xml 中加入对应过滤器配置文件

Java代码  
  1. <!-- Spring的OpenSessionInView实现 -->
  2. <filter>
  3. <filter-name>openSessionInViewFilter</filter-name>
  4. <filter-class>        org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
  5. </filter-class>
  6. <!-- singleSession默认为true,若设为false则等于没用OpenSessionInView 。所以默认可以不写-->
  7. <init-param>
  8. <param-name>singleSession</param-name>
  9. <param-value>true</param-value>
  10. </init-param>
  11. <!--
  12. 指定org.springframework.orm.hibernate3.LocalSessionFactoryBean在spring配置文件中的名称,默认值为sessionFactory。 如果LocalSessionFactoryBean在spring中的名称不是sessionFactory,该参数一定要指定,否则会出现找不到sessionFactory的例外。所以默认可以不写
  13. -->
  14. <init-param>
  15. <param-name>sessionFactoryBean</param-name>
  16. <param-value>sessionFactory</param-value>
  17. </init-param>
  18. </filter>
  19. <filter-mapping>
  20. <filter-name>openSessionInViewFilter</filter-name>
  21. <url-pattern>/*</url-pattern>
  22. </filter-mapping>

 2. 在我们访问持久层数据是使用 Spring 为我们的 HibernateDaoSupport 的支持,并使用其中的对应方法操作我们的持久层数据

Java代码  
  1. import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
  2. public class XxxDAO extends HibernateDaoSupport {
  3. public void save(Xxx transientInstance) {
  4. try {
  5. getHibernateTemplate().save(transientInstance);
  6. } catch (RuntimeException re) {
  7. throw re;
  8. }
  9. }
  10. }
点此链接,查看详细

OpenSessionInViewFilter 的配置相关推荐

  1. OpenSessionInViewFilter 的配置及作用

    spring为我们解决hibernate的Session的关闭与开启问题.  Hibernate 允许对关联对象.属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Sessi ...

  2. spring整合hibernate的applicationContext.xml文件配置以及web.xml

    applicationContext.xml文件 <?xml version="1.0" encoding="UTF-8"?> <beans ...

  3. 过滤器java面试_过滤器监听器面试题都在这里

    以下我是归纳的过滤器监听器知识点图: 图上的知识点都可以在我其他的文章内找到相应内容.如果文章有错的地方欢迎指正,大家互相交流.习惯在微信看技术文章的同学,可以关注微信公众号:Java3y 监听器常见 ...

  4. Struts2+Hibernate+Spring+ZTree+Dtree 实现树形菜单

    2019独角兽企业重金招聘Python工程师标准>>> 1.第一步配置web.xml <?xml version="1.0" encoding=" ...

  5. Java面试题仅供自己学习

    1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注 ...

  6. 详谈 Filter 过滤器

    详谈 Filter 过滤器 文章首发在CSDN博客,转载请务必注明以下所有链接,否则考虑法律追究责任. CSDN地址:http://blog.csdn.net/tzs_1041218129/artic ...

  7. OpenSessionInViewFilter作用及配置

    http://smesoft.blog.51cto.com/2740835/878389 一.作用 Spring为我们解决Hibernate的Session的关闭与开启问题.  Hibernate 允 ...

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

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

  9. OpenSessionInViewFilter原理以及为什么要用OpenSessionInViewF

    2019独角兽企业重金招聘Python工程师标准>>> truts2 里面OpenSessionInViewFilter 一定要写在最上面 下面有讲解 --------------- ...

最新文章

  1. ACM PKU 2663 Tri Tiling http://acm.pku.edu.cn/JudgeOnline/problem?id=2663
  2. 正则表达式的一些符号基础和实例解析
  3. cp abe java_CP-ABE环境配置
  4. Servlet chapter 1
  5. PS_02_大师之路
  6. 详解YUV420数据格式
  7. python发送邮件 退回_【破案了】python发邮件问题,求助!为什么总被退回?
  8. #cs231n#Assignment2:Dropout.ipynb
  9. 利用N2N内网穿透,并实现直连
  10. 手机游戏怎么独占世界手游鳌头
  11. Android 中 使用 Google Paly 支付 简介
  12. 图像处理中“灰度级数”是什么?(灰度值)(位深度)(1bit=1位)
  13. 2021年二级c语言采用的版本是,2021年二级c语言笔试必背-20210416065706.doc-原创力文档...
  14. 计算机游戏中屏幕上显示的,电脑在玩全屏游戏的时候显示屏老是出现无信号
  15. Java的JDK和JRE
  16. VR全景入驻百度地图,有哪些优势呢?
  17. 微信curl上传客服头像接口遇到的坑
  18. python颜色识别原理_python+opencv实现颜色检测、轮廓检测、颜色追踪
  19. LifeKeeper 双机软件 集群软件 双机热备份软件
  20. 基于BS的传统中医诊断系统软件开发与实现

热门文章

  1. Vue项目—请求函数的封装
  2. jQuery学习(二)—jQuery对象的获取
  3. maya显示已安装_【3D建模】Maya操作秘籍83招(一)
  4. 读取swagger配置文件里的内容
  5. 为什么有些工厂,3000块一个月不包吃住还能招到工人?
  6. 没有文化适合自媒体创业吗
  7. 现在人真的很奇怪,看见有钱人点头哈腰
  8. linux-2.6.
  9. 派生类对基类成员的访问控制之公有继承
  10. ssis面试题_SSIS面试问题