动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.开源技术:将系统移植到Spring.
.Java手机软件图形界面API之慨述.
.CMNET和CMWAP网络连接.
.一步一步学习midp2。0游戏编程(.
.Thinking in Java (the 2nd edit.
.我的Java的学习历程.
.Shark api 应用:判断流程进行到.
.如何在 Java 中如何定义一个常量.
.一个生产-消费模式的XML解析实现.
.用Swing制作欢迎屏幕.
.Java入门(6)Java数据类型.
.利用Java Swing设计通用对话框.
.JAVA数组和JAVA集合类的对象操作.
.struts2的struts.properties配置.
.浅出Java Socket编程.
.一个连接池的例子(来自JIVE).
.使P2P能进行交互操作:Jxta命令s.
.在Eclipse 3.1体验J2SE 5.0新特性.
.EJB设计模式3.
.Java多重提交处理分析.

使用 EJB 3.0 Java Persistence API 设计企业应用程序

发表日期:2008-1-5 |


本文将介绍 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 中,免除了组件分发的需要。本文的 远程处理 一节简要介绍了为应用程序添加远程处理功能的方法。


使用 EJB 3.0 Java Persistence API 设计企业应用程序(图一)
使用 EJB 3.0 Java Persistence API 设计企业应用程序(图二) 使用 EJB 3.0 Java Persistence API 设计企业应用程序(图二)


服务层

服务层被设计为服务 facade。它由 PetStoreService 这一无状态会话 bean 实现。Bean 要完全依靠其协作者来提供 Web 服务。

因为简化的 PetStore 要求被限定于从数据库检索数据并把数据存储于数据库,惟一的协作者就是 DAO。真正的应用程序能够调用 Web 服务,通过 RMI/IIOP 或资源适配器访问其他应用程序,并生成电子邮件消息等。所有此类型的功能都需要其他协作者支持。


上一篇:《Java极限编程》(Java Tool for Extreme Programming)读书笔记 (4) 人气:545
下一篇:跨越边界: 活动记录和 Java 编程中特定于域的语言 人气:371
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-10 企业网站智能管理系统(TZIMS) v6
2008-10-10 拓文asp.net网站内容管理系统 v6
2008-10-10 动网论坛PHP版 v2.0++ Build 081
2008-10-10 免费时代CMS v5.0
2008-10-10 wodig第四季中文DIGG社区 v4.1 b
2008-10-10 老Y文章管理系统 v2.2 bulid 081
2008-10-10 魔法盒动感相册 ASP+SQL版 v2.0
2008-10-10 Asoft签到管理系统 v3.0 Pack1
2008-10-10 哥特人音乐网潮流留言本 v1.1
2008-10-11 WallPaperSearch墙纸搜索器 v1.2
2008-10-11 iLighter打火机 v1.0 破解版
2008-10-11 iNetwork网速测试 v1.0.3破解版
2008-10-11 I-Private绝对隐私 v1.0 破解版
2008-10-11 iQuranPro可兰经专业版 v2.1 破解
2008-10-11 iRecorder录音机 v1.2汉化破解版
2008-10-11 iPrayPro宗教祈祷软件 v2.1 破解
2008-10-11 Garf记忆锻炼 v1.0 破解版
2008-10-11 Hebrew希伯来语字典 v2.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成