博客
关于我
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
阅读量:802 次
发布时间:2023-02-26

本文共 1367 字,大约阅读时间需要 4 分钟。

Spring 提供了一个叫做 OpenSessionInViewFilter 的过滤器,这是一个标准的 Servlet Filter。为了使其正常工作,我们需要将它配置到 web.xml 文件中。使用 OpenSessionInViewFilter 时,我们需要配合使用 Spring 的 HibernateDaoSupport,从而确保我们的 DAO 层类继承于 HibernateDaoSupport。这样,Spring 会管理 Hibernate Session 的生命周期,即在请求开始时开启 Session,在请求结束时关闭 Session,保证了对持久层数据的稳定访问。

1. 在 web.xml 中配置 OpenSessionInViewFilter

在 web.xml 中添加 OpenSessionInViewFilter 的配置如下:

openSessionInViewFilter
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
singleSession
true

此外,我们可以指定 LocalSessionFactoryBean 的名称,默认值为 sessionFactory

sessionFactoryBean
sessionFactory

2. 使用 Spring 的 HibernateDaoSupport

在访问持久层数据时,我们需要使用 Spring 提供的 HibernateDaoSupport 并调用其方法操作数据。例如,DAO 类可以继承 HibernateDaoSupport 并实现自定义的数据访问逻辑:

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class XxxDAO extends HibernateDaoSupport {    public void save(Xxx transientInstance) {        try {            getHibernateTemplate().save(transientInstance);        } catch (RuntimeException re) {            throw re;        }    }}

OpenSessionInViewFilter 的功能

OpenSessionInViewFilter 的主要作用是将一个 Hibernate Session 与一次完整的 HTTP 请求关联起来。它会在请求开始时绑定 Session 到当前线程,并在请求结束后自动关闭 Session。这样,在视图层可以方便地进行懒加载操作,例如 ${company.employees}

转载地址:http://kzvfk.baihongyu.com/

你可能感兴趣的文章
php laravel请求处理管道(装饰者模式)
查看>>
ReentrantReadWriteLock读写锁底层实现、StampLock详解
查看>>
PHP mongoDB 操作
查看>>
ReentrantLock读写锁
查看>>
ReentrantLock的公平锁与非公平锁
查看>>
php mysql procedure获取多个结果集
查看>>
php mysql query 行数,PHP和MySQL:返回的行数
查看>>
php mysql session_php使用MySQL保存session会话
查看>>
PHP mysql_real_escape_string() 函数防SQL注入
查看>>
php mysql优化方法_MySQL优化常用方法
查看>>
PHP OAuth 2.0 Server
查看>>
php odbc驱动,php常用ODBC函数集(详细)
查看>>
php openssl aes ecb,php openssl_encrypt AES-128-ECB iOS
查看>>
php paypal rest api,PayPal REST API指定网络配置文件PHP
查看>>
php pcntl 多进程学习
查看>>
PHP pcntl_fork不能在web服务器中使用的变通方法
查看>>
php private ,public protected三者的区别
查看>>
php PSR规范
查看>>
php rand() 重复,array_rand()函数从另外一个数组中随机取得的一定数量的数组的元素是否会重复?...
查看>>
php redis pub/sub(Publish/Subscribe,发布/订阅的信息系统)之基本使用
查看>>