`
fanggangJava
  • 浏览: 25260 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Hibernate 3.3主要的新特性包括

    博客分类:
  • java
阅读更多

<!----><!----><!----> <!---->

 

Hibernate 3.3 主要的新特性包括:

  • 重新设计、模块化 JARs—— 现在有很多定义良好的 JARs ,而不是一个大的 JAR 文件 —— 这使得用户可以轻松了解依赖关系并将其最小化,同时还使得组织可以定制 Hibernate ,移除不需要的部分
  • 基于 Maven 的构建 —— 现在 Hibernate 使用 Apache Maven 构建系统进行构建
  • 修补的缓存 SPI —— 根据反馈重构了缓存系统以对不同的缓存区域的特性进行精细控制
  • JBoss Cache 2.x 分布式缓存 集成 —— 基于新的缓存 SPI ,现在可以轻松集成 JBoss Cache 2.x

<!---->·         <!---->Ebersole 还详细说明了新的缓存系统和 JBoss Cache 集成:

<!---->·         <!---->SPI 的主要变化围绕着如何在特定目的下构建缓存区域而展开。基本上 Hibernate 需要缓存区域完成四个不同的目的: 实体数据、集合数据、查询结果及时间戳更新。以前的 SPI 试图以单一方式处理这些不同类型数据;本质上它试图以普遍的方式来对待数据缓存而不管所存储数据 的特性。但是在实践中我们发现很多时候缓存集成器需要考虑到那些不同特性。例如在集群缓存中,让实体和集合数据及查询和时间戳更新区域同时失效或许很有意 义。如果不基于区域名称采取一些手段的话,以前的 SPI 是不可能处理这种混合匹配的。新的 SPI 使这些区别变得清晰明了。例如有一个叫做 “buildEntityRegion” 或者 “buildCollectionRegion” 的方法,那么缓存集成器就可以确定特定区域的数据类型是可以持有并构建一个恰当的配置好的缓存 / 区域的。

<!---->·         <!---->JBossCache 2.x 集成现在是直接使用新的 SPI 的唯一的缓存集成(其余的使用了连接新式和旧式 SPI 的桥,现在已不建议使用了)。同样,它充分利用了我上面提到的那 些区别以使得用户可以为不同区域定义不同行为。 JBossCache 2.x 相对于 JBossCache 1.x 来说有两个具体的改进有助于 Hibernate 的使用。第一个是增加了 “putForExternalRead” 过程。当使用 JBossCache 1.x ,我们在从数据库读取数据并将其放到 JBossCache 区域中,有时会遇到性能问题,甚至还会发生死锁。情况是这样的:当我们尝试将只读数据放到 节点上时, JBossCache 需要一个写锁,尽管整体操作的语义需要的是一个读锁。然后该写锁阻塞了其他事务。 JBossCache 2.x 引入了一个针对该用例而特别设计的方法,集成时就使用了该方法。

从使用 Hibernate 的角度来看 JBossCache 2.x 中其他重要的改进就是它使用乐观锁更好地管理集群中无效的节点。最大的改变就是有一个 碑石( tombstone 来检查无效的实体,这样后面如 果尝试往缓存中的该实体进行写入操作时就会知道无效的版本是什么并且还会执行一个恰当的版本检验。对于 Hibernate 来说无效是非常重要的,因为这是 最有效的运行集群实体缓存的方式。

JBoss Cache

JBoss Cache 提供两种缓存方式:核心缓存和 POJO 缓存。

核心缓存会直接把您传递给它的数据存储在一个树型结构中。键/值对被存储在树的节点上,出于复制或持续性的需要它们都被序列化了。

POJO
缓存则采用比较复杂的机制 —— 利用字节码编织来内省( introspecting )用户类,并向用户类的域添加侦听器,一旦域值有任何变化,侦听器会立刻通知缓存。例如,如果要在 POJO 缓存中存储一个庞大、复杂的对象,会导致 POJO 缓存内省对象的字节码,最终只把该对象的原始域存储到树结构中。一旦域值有所变化,缓存只复制这个改变了的域值而不会去复制整个用户类,这是高效的细粒度复制。

 

hibernate-annotations

1 spring orm support
与原来使用 LocalSessionFactoryBean 相比,变动不大( AnnotationSessionFactoryBean 本来就是从 LocalSessionFactoryBean 类继承过来的嘛)

 1      < bean
 2            id ="sessionFactory"
 3           class ="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
 4           parent ="AbstractSessionFactory">
 5           < property  name ="annotatedClasses">
 6               < list >
 7                   < value > xxx.xxx.xxx.domain.Account </ value >
 8               </ list >
 9           </ property >
10       </ bean >
11       < bean
12            id ="AbstractSessionFactory"
13           class ="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
14           abstract ="true">
15           < property
16                name ="dataSource"
17               ref ="DataSource"   />
18           < property  name ="hibernateProperties">
19               < props >
20                   < prop  key ="hibernate.dialect"> ${hibernate.dialect} </ prop >
21                   < prop  key ="hibernate.show_sql"> ${hibernate.show_sql} </ prop >
22                   < prop  key ="hibernate.hbm2ddl.auto"> ${hibernate.hbm2ddl.auto}

<!----><!----><!---->

  • ssh.rar (138.3 KB)
  • 下载次数: 37
分享到:
评论

相关推荐

    Hibernate3.3_学习笔记.doc.zip

    Hibernate3.3是其发展的一个重要阶段,它引入了许多新特性,增强了性能和灵活性。 二、安装与配置 学习Hibernate3.3首先需要理解其基本的环境配置,包括JDK、JDBC驱动、Ant或Maven构建工具的安装,以及hibernate....

    hibernate3.3 api中文

    总的来说,“hibernate3.3 api中文”文档详细阐述了Hibernate 3.3的各个方面,包括基本概念、配置、实体映射、查询、事务处理、集合映射以及缓存等,对于学习和掌握Hibernate框架是非常有价值的资源。开发者可以通过...

    hibernate3.3 jar包

    这个"hibernate3.3 jar包"包含了所有必要的库文件,使得开发人员能够在项目中集成Hibernate 3.3版本,从而高效地管理数据库交互。 `hibernate3.jar`是核心的Hibernate库文件,它包含了框架的主要组件,如Session...

    hibernate3.3 java project

    **hibernate3.3 java project** 本项目是基于Hibernate 3.3版本的一个Java项目,专注于实现数据库的CRUD(Create, Read, Update, Delete)操作。对于那些初次接触Hibernate框架或者正在学习Java持久化技术的人来说...

    Hibernate3.3.rar

    Hibernate 3.3是Hibernate系列的一个里程碑,它引入了诸多新特性,如增强的缓存策略、支持JPA 1.0规范、更灵活的查询语言(HQL)等。这个版本进一步提升了框架的稳定性和可扩展性,使得开发者能够更高效地处理对象与...

    spring3.0+hibernate3.3+mysql8.0

    Hibernate 3.3版本提供了许多改进,包括性能优化、对JPA的支持以及更完善的缓存策略。在Spring框架中,我们可以利用Spring的HibernateTemplate或SessionFactoryBean来配置和管理Hibernate,以实现数据持久化。 **...

    hibernate 3.3 源码

    Hibernate 3.3的配置文件(通常是hibernate.cfg.xml)包含了数据库连接信息、缓存设置、方言(Dialect)选择等。开发者可以通过配置文件定制数据库连接参数,选择适合特定数据库的方言,以充分利用其特性。 3. **...

    eclipse_hibernate3.3IDE插件

    总之,Eclipse Hibernate 3.3插件是Java开发者的强大工具,它极大地提升了在Eclipse中的Hibernate开发体验,通过丰富的特性简化了数据库操作,提高了开发效率。无论是在大型企业级应用还是小型项目中,都能发挥其...

    韩顺平hibernate3.3视频教程源码1-3day

    【hibernate3.3视频教程源码解析】 在IT领域,Hibernate是一个广泛使用的对象关系映射(ORM)框架,它极大地简化了Java开发者与数据库交互的过程。本教程源自韩顺平老师的hibernate3.3系列视频,旨在帮助学习者深入...

    Struts 1.2+Hibernate3.3+Spring3.0整合详细步骤+源码

    文档"Struts 2.1+Hibernate3.3+Spring3.0整合详细步骤.doc"可能包含了上述步骤的详细过程,帮助读者理解如何将Struts 2.1(注意标题是1.2,但文档可能是2.1版本的误写)与Hibernate 3.3和Spring 3.0进行整合。...

    Hibernate3.3 中文参考

    在3.3版本中,Hibernate 提供了诸多改进和新特性,使其成为企业级应用开发的重要工具。本中文参考手册将全面解析 Hibernate 3.3 的核心概念、配置、使用方法以及最佳实践。 ### 1. Hibernate 概述 Hibernate 解决...

    韩顺平hibernate3.3讲座ppt

    【hibernate3.3深度解析】 在Java世界中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者能够更专注于业务逻辑而不是底层的数据处理。本讲座由知名IT讲师韩顺平主讲,...

    hibernate3.3.jar

    "hibernate3.3.jar" 是Hibernate 3.3版本的核心库文件,包含了所有必要的类和接口,使得开发者能够利用Hibernate的功能来管理和操作数据库。 在Hibernate 3.3版本中,主要包含以下关键知识点: 1. **对象关系映射...

    struts2.1+spring2.5+hibernate3.3整合之第一步(spring2.5+hibernate3.3)

    Struts2.1、Spring2.5和Hibernate3.3是经典的Java企业级开发框架组合,它们各自在应用程序的不同层面提供了强大的支持。本篇将详细阐述这三个组件的整合过程,以及各自的核心特性。 首先,Struts2是一个基于MVC设计...

    hibernate3.3

    11. **性能优化**:Hibernate 3.3在性能上进行了优化,包括查询计划缓存、批处理更新等,提升了整体的运行效率。 12. **逆向工程(Reverse Engineering)**:Hibernate 3.3提供了一个工具,可以自动生成基于现有...

    Hibernate3.3所需lib

    标题"Hibernate3.3所需lib"表明这是一个关于Hibernate 3.3版本所需的库文件集合。Hibernate是Java开发中的一个流行对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库操作。"lib"在这里指的是Java的...

    Hibernate3.3 API中文版

    《Hibernate 3.3 API中文版》是针对Java开发者的重要参考资料,它详尽地阐述了Hibernate 3.3版本的API接口和功能。Hibernate作为一款流行的Object-Relational Mapping(ORM)工具,极大地简化了Java应用程序与关系...

Global site tag (gtag.js) - Google Analytics