19dwr - DWR 与 Hibernate整合

简介: 19dwr - DWR 与 Hibernate整合

让 DWR 和 Hibernate 一起工作的检查列表

  1. 确保你使用的是最新的 DWR。Hibernate 转换器是新东西,所以你需要下载最新版本
  2. 确保你的 Hiberante 在没有 DWR 的时候工作正常。
  3. 如果是 Spring 和 Hibernate 一起使用,那么你最好先了解一下如何将整合 Spring。
  4. 配置 DWR,使之与 Hibernate 一起工作。 (看下面)。
  5. 查看演示页面:http://localhost:8080/YOUR-WEBAPP/dwr ,确定 Spring 的 Bean 可以出现。

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。

Session 管理

如果你使用 Hibernate 对象,你需要知道每一个 DWR 请求都是一个新的 Servlet 请求,所以你需要保证为每个请求打开一个 Hiberante 的 Session。

如果你用 Spring,那么可以很方便的使用 Spring 里面的 OpenSessionInViewFilter,它可以保证为每个请求打开一个 Hiberante 的 Session。类似的解决方案在其它 Framework 中也存在。

目录
相关文章
|
Java Spring
15dwr - DWR 与 Spring整合
15dwr - DWR 与 Spring整合
57 0
|
开发框架 安全 JavaScript
51dwr - 安全
51dwr - 安全
37 0
16dwr - DWR 与 JSF整合
16dwr - DWR 与 JSF整合
52 0
|
前端开发 JavaScript Java
01dwr - dwr简介
01dwr - dwr简介
42 0
|
Java PHP
17dwr - DWR 与 Struts整合
17dwr - DWR 与 Struts整合
35 0
|
6月前
|
JavaScript 前端开发 Java
DWR3使用
DWR3使用
|
安全 Java Spring
21dwr - DWR 与 Acegi整合
21dwr - DWR 与 Acegi整合
30 0
|
前端开发 JavaScript Java
20dwr - DWR 与 WebWork整合
20dwr - DWR 与 WebWork整合
50 0
|
缓存 JavaScript 前端开发
14dwr - DWR 与 Servlet整合
14dwr - DWR 与 Servlet整合
58 0
|
Java Maven Spring
DWR+SpringMVC整合的方式
DWR+SpringMVC整合的方式http://www.bieryun.com/1497.html 这种方式的时候也遇到了一个很无语的问题,我原来使用的是maven下载的dwr-3.0.M1.jar包,然后运行jetty没错,显示jsp的时候就一直报下面这个错误: org.
1293 0