DWR 整合之Hibernate
1.让 DWR 和 Hibernate 一起工作的检查列表
1.确保你使用的是最新的 DWR。Hibernate 转换器是新东西,所以你需要下载最新版本
2.确保你的 Hiberante 在没有 DWR 的时候工作正常。
3.如果是 Spring 和 Hibernate 一起使用,那么你最好先了解一下如何将整合 Spring。
4.配置 DWR,使之与 Hibernate 一起工作。 (看下面)。
5.查看演示页面:http://localhost:8080/YOUR-WEBAPP/dwr,确定 Spring 的 Bean 可以出现。
2.HibernateBeanConverter
除了我们可以决定是否要使用 lazy loaded 属性,这个转换器非常类似于标准的 BeanConverter。
在 DWR1.1 Hibernate 转换器被称为“hibernate”并且作用在 hibernate2, 在 DWR2.x 有 2 .个转换器被称为“hibernate2”并且作用在 hibernate3。
使用 HibernateBeanConverter 也许有点风险,原因如下:
•结构:HibernateBeanConverter 不符合 MVC 模式,所以不能把对象在数据曾和表现曾之间进行隔离。这个风险可以通过在上面加上独立的 bean 来减轻。
•性能: DWR 试图通过相同的序列化方式来转换所有可以得到的属性(除了 DWR 仅仅读 JavaBean 属性的时候)。所以可能会出现通过 HTTP 序列化了你的整个数据的情况。通常这并不是你想要的。要减少这一风险可以使用 BeanConverter(HibernateBeanConverter 衍生于它)的排除某些属性的功能,
如下所示:
<param name="exclude" value="propertyToExclude1, propertyToExclude2"/>
HibernateBeanConverter 会尝试不去读取没有初始化的属性。如果你只是想读取所有的东西那么应该使用BeanConverter。
建议使用 Hibernate3,实际上 Hibernate2 的情况,你会发现你得到的都是空的 Bean。
3.Session 管理
如果你使用 Hibernate 对象,你需要知道每一个 DWR 请求都是一个新的 Servlet 请求,所以你需要保证为每个请求打开一个 Hiberante 的 Session。
如果你用 Spring,那么可以很方便的使用 Spring 里面的 OpenSessionInViewFilter,它可以保证为每个请求打开一个 Hiberante 的 Session。类似的解决方案在其它 Framework 中也存在。
DWR 整合之Hibernate的更多相关文章
- eclipse环境下基于已构建struts2项目整合spring+hibernate
本文是基于已构建的struts2项目基础上整合 spring+hibernate,若读者还不熟悉struts2项目,请先阅读 eclipse环境下基于tomcat-7.0.82构建struts2项目 ...
- spring整合mybatis(hibernate)配置
一.Spring整合配置Mybatis spring整合mybatis可以不需要mybatis-config.xml配置文件,直接通过spring配置文件一步到位.一般需要具备如下几个基本配置. 1. ...
- JavaWeb_(SSH)三大框架整合struts+hibernate+spring_Demo
三大框架整合 一.SSH导包 二.书写Spring 三.书写Struts 四.整合Spring与Struts 五.书写(与整合)Hibernate.引入c3p0连接池并使用hibernate模板 六. ...
- 整合struts2+hibernate详细配置步骤及注意事项
刚刚学完这两个框架,就迫不及待的做了一个例子,在整合两个框架的时候,也碰到了一些小问题,下面介绍一下配置的步骤: 1.创建一个自定义的struts2和hibernate的类库 因为之前写例子都是直接将 ...
- DWR 整合之Struts2.3.16
DWR 能够和任何框架结合. DWR 和 Struts 整合有 2 个层次.最基础的层次就是同时使用这两个框架,这是非常容易的,但是这样就不允许在 DWR 和 Struts 之间共享 Action 了 ...
- spring整合struts2,hibernate
1.导包 struts2包(不需要导入,之前学习struts2时已经导入) hibernate包(不需要导入,之前学习hibernate时已经导入) Spring包 整合hibernate的没有hib ...
- Spring整合Struts2,Hibernate的xml方式
作为一个学习中的码农,一直学习才是我们的常态,所以最近学习了SSH(Spring,Struts2,Hibernate)整合,数据库用的MySQL. 写了一个简单的例子,用的工具是IntelliJ Id ...
- ssh整合之三hibernate和spring整合
1.拷贝我们的spring事务控制所需的jar包 2.在spring容器中配置我们的hibernateTemplate以及事务管理器 <?xml version="1.0" ...
- jersey2 整合 spring + hibernate + log4j2
整合 spring jersey2 官方还未正式支持 spring4, 但网上有好多支持方案,折腾了一圈后,还是用了 spring3; pom 添加以下依赖配置 <!-- Spring --&g ...
随机推荐
- Centos sudo添加用户
$ su - # vi /etc/sudoers 在root ALL=(ALL) ALL下 添加 username ALL=(ALL) ALL 输入wq!强制保存.
- HDU2206:IP的计算
Problem Description 在网络课程上,我学到了很多有关IP的知识.IP全称叫网际协议,有时我们又用IP来指代我们的IP网络地址,现在IPV4下用一个32位无符号整数来表示,一般用点分方 ...
- dns是什么
域名解析服务器,靠它把你要访问的网址找到然后把信息送到你电脑上.DNS 是域名系统 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的.域名服务器是指保存有该网络中所有主 ...
- C#在Json反序列化中处理键的特殊字符
假设有如下Json 数据: 1.{ 2."id" : 1, 3."@value" : "this a @", 4."$p" ...
- 上传下载文件, 同时部署在webapps下, 而不是项目下,防止重新部署tomcat, 上传文件消失
前端上传 <a href='javascript:upload("+data[i].id+")' title='Upload Report'> <img src= ...
- Inno Setup入门(十一)——完成安装后执行某些程序
有些时候我们的程序虽然能够很好的完成安装,但是程序的配置工作可能需要其他的一些程序来辅助完成,如果不执行这些程序,主程序就不能很好的完成工作,甚至不能完成工作,一个很明显的例子是,目前许多程序是通过N ...
- ProgressDialog
几个方法介绍: 1.setMax() 设置对话框中进度条的最大值. 2.setTile() 设置标题. 3.setProgressStyl() 设置对话框中进度条的样式.例如:环形和水平. 参数: P ...
- ionic中 .col : 默认的定宽列
.col : 默认的定宽列 在ionic的栅格中,每一行的各列默认是等宽的,这使得实现一个图片 浏览界面非常简单.下图是instagram app的截图: instagram <!DOCTYPE ...
- 笨方法学python--简介
该章提到编程新手所需的三种最重要的技术:读和写,注重细节,发现不同. 读 和 写 即熟悉代码中的各种字符. 注 重 细 节 将例子一字不差地打出来,通过实践训练自己 发 现 不 同 这个是通过长年累月 ...
- Funny Game
Funny Game time limit per test 1 second memory limit per test 256 megabytes input standard input out ...