采用Java 持久化框架:选择、时机和优缺点? - 编程入门网
采用Java 持久化框架:选择、时机和优缺点?时间:2011-07-22对于开发新软件系统来说,面向对象编程无疑是当今使用最为广泛的编程模式。由于商业数据的持久性需求,关系数据库管理系统(RDBMS)取得了最为广泛的应用。RDBMS 使用的是关系模型,它与软件系统中的域对象模型有所不同。使用面向对象编程语言开发软件系统并使用 RDBMS 来持久存储数据时,数据持久化框架将成为应用程序架构中非常关键和重要的组件,它们的作用是隐藏应用程序数据持久化的底层复杂性。 在过去的几年中,一些持久化框架得到了很好的发展,它们可帮助您管理对象关系映射和数据持久性需求。但是,根据需要选择一个合适的框架并不是一件简单的任务,因为多种因素会影响到这个决定。在本文中,我将根据三个基本标准来讨论如何一些应用比较广泛的 Java 持久化框架中做出选择:选择、时机和优缺点。在“选择”这部分中,我将介绍如何选择框架;在“时机”这部分中,我将讨论一些您应该考虑应用框架的应用场景以及一些您应该寻找备选方案的应用场景;最后,在“优缺点”这一部分中,我将讨论当您决定采用某个框架时,该框架所有的优势和缺点。首先要讨论的是下面这个在 Java 持久化领域中最著名的框架。 Entity Enterprise Java Bean Java Persistence API Hibernate TopLink 让我们更加详细地讨论这些框架。 Entity Enterprise Java Bean Enterprise JavaBean(EJB) 技术是针对 Java 平台 Enterprise Edition (Java EE) 的一种托管的服务器端组件架构。在此定义中,“托管”和“服务器端”是关键术语。在 EJB 架构中,应用服务器 将管理一个或多个已部署的 EJB 的生命周期,并通过 EJB 容器提供公共运行时服务。容器提供的服务包括安全性、并发控制、事务和持久化管理等。 EJB 规范 定义了三种 Enterprise Bean 类型:Session、Entity 和 Message Driven。每种类型都具有一些独特特性,分别用于不同目的。由于本文是关于 Java 持久化框架的,我们将简单讨论一下 EJB 架构的持久化方面,讨论中会涉及使用 Entity EJB 管理您的 Enterprise Java 应用程序的持久化要求。 使用 EJB 设计应用程序时,EJB 表示业务域模型中的一个实体。例如,试想一个商业银行应用程序的 Account 实体。该 Account Entity Bean 将被部署到 J2EE 应用程序服务器中,该服务器将通过 EJB 容器给此 Entity Bean 提供一些运行时间服务。这种服务是自动持久化的,我将更加详细地讨论。 根据持久化实现的方式,Entity EJB 可以进一步划分为两种:Bean-Managed Persistence(BMP)和 Container-Managed Persistence(CMP)。使用 BMP,Bean 实例通过 JDBC 代码负责其状态的持久化。而使用 Container-Managed Persistence,EJB 容器提供自动管理 Entity Bean 的持久化的能力:当需要时,将状态保存到底层数据库或从底层数据库加载状态。 现在让我们讨论一些应用场景,在这些应用场景中您一般可能想要应用 EJB 框架,特别情况下可能使用 CMP 进行数据持久化。 何时考虑将 EJB 作为持久化框架 首先您要考虑的是需要容器提供的服务。如果您的应用程序需要除持久化管理以外的其他容器提供的服务,比如转换管理、安全性和并发控制,则最好使用 EJB 框架。 另外还要考虑资源要求。EJB 框架可为需求应用程序提供完美的可伸缩性。但是,这也是有代价的:密集的资源要求,尤其使用 远程接口 模式时。只在没有资源限制的时候考虑应用 Entity EJB,以便获得所需的性能水平。 还有一个相关的因素是 de facto 框架。如果您正在进行某个基于 Java 平台的 EE 部署,则机会在于 EJB 容器已成为您的应用程序服务器的一部分。“为什 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |