Spring系列,第2部份: 当Hibernate赶上Spring[Java编程]
本文“Spring系列,第2部份: 当Hibernate赶上Spring[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
Naveen Balani 持续他的 Spring 系列,介绍把 Hibernate 事件与 Spring 面向方面编程(AOP)集成的知识.后果是一个可以依靠的长期性框架.
在这个系列的 前一期中,我介绍了 Spring 框架的 7 个模块,包含 Spring AOP 和掌握反转(IOC)容器.然后我用一个简单的示例演示了 IOC 情势(由 Spring IOC 容器实现)若何用疏松耦合的方法集成份散的系统.
目前,我从我上次完毕的地方开始,采取与上次近似的示例,演示 Spring AOP 和 Spring Hibernate 长期性支持的声明性事件处理,所以我首先从对这两项技术的深化研究开始.
下载这篇文章的源代码.请参阅 参考资料 拜候 Spring 框架和 Apache Ant,运行这篇文章的示例利用程序需求它们.
Spring AOP
软件系统普通由多个组件构成,每个组件负责一个特定的功效范畴.但是,这些组件也常常承当它们的核心功效之外的额外责任.系统服务(比方日记、事件管理和安全性)常常发现自己跑到了别的组件的范畴里,而这些组件的核心职责是其他事情.后果就是所谓的“代码胶葛”,大概更简单点儿说“一团糟”.面向方面编程是一种试图办理这个问题的编程技术,它把关注点的断绝晋升为核心的编程概念.
利用 AOP 时,仍旧是在一个地方定义系统的大众功效,但是可以声明性地定义 若何 和 在那边 利用这个功效.假如对横切关注点(比方日记和事件管理)举行了模块化,那么不用改正每个单独的类,便可以向代码中增添新特点.这类模块化的关注点称作 方面.
以一个企业利用程序为例.这类利用程序普通要求近似于安全性和事件支持的服务.明显,可以把这些服务的支持直接编写到要求服务的每个类当中,但是更但愿可以没必要为大量事件性上下文编写一样的事件处理代码.假如利用 Spring AOP 举行事件处理,那么可以声明性地安置得当的办法调用,而没必要一一安置.
Spring AOP 供应了几个方面,可认为 JavaBean 声明事件.比方,TransactionProxyFactoryBean 是个便利的代理类,可以拦阻对现有类的办法调用,并把事件上下文利用到事件 bean.在下面的示例中会看到这个类的实际利用.
Hibernate
Spring 框架供应了对 Hibernate、JDO 和 iBATIS SQL Maps 的集成支持.Spring 对 Hibernate 的支持是第一级的,整合了很多 IOC 的便利特点,办理了很多典型的 Hibernate 集成问题.框架对 Hibernate 的支持符合 Spring 通用的事件和数据拜候对象(DAO)非常层次构造.
Spring 为利用挑选的 OR 映射层来成立数据拜候利用程序供应了支持.因为全部东西都计划成一组可重用 JavaBean,所以不管挑选什么技术,都能以库的格局拜候大大都 Spring 的 OR 映射支持. ApplicationContext 或 BeanFactory 内部的 OR 映射的好处是简化了配置和布置.
Hibernate 是 Java 平台上一个功效全面的、开源的 OR 映射框架.Hibernate 支持开辟符合通例 Java 理念的长期性类 —— 包含关联、担当、多态、复合以及 Java 调集框架.Hibernate 查询语言(HQL)被计划成 SQL 的一个微型面向对象扩大,它是对象和关系世界之间的桥梁.Hibernate 也支持用原始 SQL 或基于 Java 的尺度和示例查询表达查询.Hibernate 利用 XML(*.hbm.xml) 文件把 Java 类映射到表,把 JavaBean 属性映射到数据库表.
通过 JDBC 技术,支持全部的 SQL 数据库管理系统.Hibernate 与全部风行的 J2EE 利用程序服务器和 Web 容器都很好地集成.
实际示例
一个银行利用程序示例可以让您自己看到 Spring AOP 和 Hibernate 一同工作有多么好.银行帐户用例答应用户 (Customer) 在一个事件中翻开一个或多个银行帐户.用户可以申请多个银行帐户,可以挑选是支票帐户范例大概是储备帐户范例.
利用程序数据库(Cloudscape™)包容全部客户和帐户信息.在这个例子中,假定在 Customer 和 Account 类之间存在 1:N 的关联.在实际生活场景中,关联大概需求按 m:n 建模,才能支持结合帐户.
由于用户必须可以在一个事件中申请多个帐户,所以首先要为数据库交互实现一个 DOA 情势.然后要设置 Spring AOP 的 TransactionProxyFactoryBean,让它拦阻办法调用并声明性地把事件上下文利用到 DOA.
以上是“Spring系列,第2部份: 当Hibernate赶上Spring[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |