利用EJB 3.0的JPA设计企业应用程序

本文将介绍Java Platform,Enterprise Edition(Java EE 5)的一种设计方法 ,它利用了Enterprise JavaBeans(EJB) 3.0 新的Java Persistence API (JPA) 。JPA 提供了一种标准的对象关系映射解决方案,该解决方案避免了依赖第三方 框架(如 Hibernate)。您将看到示例应用程序的详细内容,其中验证了本方法 并阐明关键设计决定。

期待已久的下一版本Java EE 5即将发布。Java EE 5许多新功能都包含经过修 补的EJB架构,其突出特性之一是JPA。由于具有容器内和容器外持久性选项,JPA 为 J2EE 架构师带来一系列全新设计选择。本文将着重介绍容器内应用程序的设 计,此类应用程序依赖EJB容器提供企业服务,如事务处理和安全性。

我将使用您熟悉的PetStore应用程序进行测试,以证明JPA的功能以及它如何 向传统J2EE设计模式发起挑战。本应用程序比较琐碎,所以不提供详尽的实现细 节。我将用代码摘录对设计注意事项进行说明。本文假设您熟悉EJB 3.0基本概念 和对象关系(OR)映射基本概念。

设计概述

示例PetStore应用程序是基于Web的电子交易应用程序,它实现以下用例:

◆浏览产品

◆查找产品

◆维护账户

◆维护购物车

◆创建订单

本应用程序被设计为具有三个主要逻辑层的多层Java EE应用程序:

◆表示层(并非本文的重点)使用 Struts 框架。

◆服务层是一种简单的服务facade,将所有工作委托给其协作者。服务层的目 的是分离服务供应与服务实现。

◆数据访问层是一系列作为无状态会话bean实现的粗粒度Data Access Objects (DAO)。出于持久性的需要,它们都依赖 Java 持久性实体管理器。

应用程序域模型由EJB 3.0实体bean表示并用于层间的通信。当域对象离开数 据访问层时,它与实体管理器脱离。当重新进入数据访问层时,它需要重新连接 到实体管理器。

注释似乎是Java 5的一个广泛采用的特性,JPA也不例外。注释可用于指定OR 映射——在dW文档和教程中您经常可以看到——而PetStore应用程序出于相同目 的使用它们。然而值得一提的是您还能通过映射文件的方式指定OR映射。本文稍 后的OR映射 一节将探讨并比较这两种可选方式。

我在Jboss应用服务器中开发并部署PetStore应用程序(参见 参考资料)。我 使用商用数据库完成大多数开发工作并将应用程序后端移植到 PostgreSQL数据库 (OR映射 一节包含了关于使用JPA时您应该了解的数据库迁移的潜在影响的讨论 )。

本案例分析的目的之一是符合设计标准,允许高度可测试的实现。如 测试 一 节所见,您能够使用一系列测试技术来测试PetStore应用程序。

PetStore 应用程序充分利用了这一事实:它是规则的 Web 应用程序。主要优 点是所有层能够运行在相同的 JVM中,免除了组件分发的需要。本文的 远程处理 一节简要介绍了为应用程序添加远程处理功能的方法。

时间: 2024-10-03 11:51:41

利用EJB 3.0的JPA设计企业应用程序的相关文章

使用Spring,JSF,EJB3设计企业应用程序

概述 Java EE 5.0 的核心框架是 EJB(Enterprise JavaBeans)3.0 和 JSF (JavaServerFaces)1.2 . EJB 3.0 是一个基于 POJO(Plain Old Java Objects) 的服务端业务服务和数据库持久化的组件模型. JSF 是一个基于 MVC(Model- View-Controller) 的 Web 应用框架.大多数的应用都将包含有业务逻辑的 EJB3 组件和用于 Web 应用前端显示的 JSF 组件.从表面上看,EJB

InfoQ:用Spring 2.0和AspectJ简化企业应用程序

Spring:简单而强大 http://www.infoq.com/cn/articles/Simplifying-Enterprise-Apps

用EJB 3.0开发企业级Bean组件初体验

阅读提要 EJB 3.0规范的最终稿已经提交到JCP,如果不出意外EJB3.0将在2006年正式发布.本文作为探讨EJB 3.0公共草案三系列中的第一篇,将解释EJB 3.0和企业Bean组件的基本概念:另外,你还学习到怎样使用JBoss和Maven来开发基于EJB 3.0的企业级bean组件. 尽管EJB 3.0规范还没有正式发行,但是它已经在Java开发社群中引起广泛兴趣--无论是对其拥护者还是其竞争对手.所有人都承认迫切需要找到更有生产效率的软件开发方法:如今,他们的争论集中于在EJB 3

POJO应用架构:Spring与EJB 3.0的对比

架构 爱因斯坦曾经说过:"每件事物都应该尽可能简单,而不是更简单".的确,对科学真理的追求都是为了简化理论的根本假设,这样我们才能处理真正麻烦的问题.企业级软件的开发也是这样的. 简化企业级软件开发的关键是提供一个隐藏了复杂性(例如事务.安全性和永续性)的应用框架.良好设计的框架组件可以提升代码的重复使用(reuse)能力,提高开发效率,从而得到更好的软件质量.但是,目前J2EE 1.4中的EJB 2.1框架组件被人们普遍认为是设计较差的和过于复杂的.Java开发者对EJB 2.1很不

EJB 3.0+Aspect实现声明性编程初步

编程 提要 本文将与你一同探讨怎样把注解和方面的威力联合起来,以与EJB 3.0兼容的方式为企业实现提供声明性服务,而在同时仍然提供容器的独立性. 一. 引言 在我们共同寻求进一步提高软件开发生产性能的方法的过程中,我们-作为Java社团成员-一般都转向J2EE来提供针对企业开发中更具挑战性的技术问题如分布式事务管理.并发性和对象分布等的解决方案.其背后的指导思想-这些复杂的企业服务能被应用程序服务器供应商所实现并能为商业开发者所平衡-的确是一种很好的思想.J2EE,具体地说是EJB,已成功地提

使用Apache OpenJPA开发EJB 3.0应用,第7部分

使用Eclipse Dali开发OpenJPA应用 关于 Eclipse Dali JPA 工具 Dali JPA Tools 是由 Eclipse.org 推出.支持 JPA 项目开发的插件,主要 目标是为用户开发.编辑 EJB 3.0 中 JPA 实体的映射关系提供可视化工具支持 .Dali 是 Eclipse WTP(Web Tools Platform)工具集中的一部分,这是由 Eclipse.org 提供.支持 Web 应用和 Java EE 应用开发的工具集. 目前 Dali 的最新

利用 Amazon Web Services 集成企业应用程序--使用 Amazon SQS 发送 XML 消息

探索如何利用 XML 和 Amazon Web Services 集成企业应用程序,以及使用Microsoft® .NET (C#) 和 Java 平台构建跨平台应用程序集成功能. 队列 是用于存储等待处理的消息的临时数据结构.Amazon Simple Queue Services (Amazon SQS) 是一个支持 Web 服务的高可用性可伸缩消息队列.Amazon SQS 的主要益处包括: 基于云的解决方案.由 Amazon 管理,不需使用私有基础设施,也不需要专业支持知识. 基于 In

使用Apache OpenJPA开发EJB 3.0应用,第2部分:开发第一个Open JPA应用

在上一部分中,我们了解了 EJB 3.0 标准和 OpenJPA 的基本特性,现在我们 将开始讲述如何使用 OpenJPA 开发企业应用.本文中,我们将假设有一个 Animal 对象,在某一个应用场景中,我们需要使用 OpenJPA 框架提供的工具和 接口完成 Animal 对象的持久化.属性修改.删除.查找功能.本文将通过简单 的文字和代码描述使用 OpenJPA 开发的步骤和方法,以及开发过程中如何使用 OpenJPA 提供的工具协助完成开发任务. 下载及安装 OpenJPA 支持环境准备

利用VB6.0设计屏幕保护程序

Windows操作平台设有一个屏幕的保护措施,即屏幕保护功能.经常在Windows操作平台上使用电脑的人们对系统提供给我们的几个屏幕保护程序是不是感到非常平常了,没有新鲜感了,是不是想自己设计屏幕保护程序.下面介绍如何利用VB设计用户自己的屏幕保护程序.屏幕保护程序可以保护显示屏不被损坏,同时节约能源.作为屏幕保护程序,应该具有如下特性: 1)屏幕保护程序运行时,鼠标光标被自动隐藏,在程序结束时,光标显示.2)当单击.移动鼠标或按下键盘时,屏幕保护结束,回到正常操作状态.为了实现这些特性,在编写