论坛登陆 用户名:  密 码:
设为首页  加入收藏
08年北京名校秋季招生
名牌院校免试入学宽进严出,突破考分限制,名校与你零距离,以下院校按报名先后顺序录取,24小时网上报名覆盖全国
  您现在的位置: 中国教育招生在线 >> IT >> JAVA认证 >> IT正文
程序员应用EJB 3.0必要的准备
 作者:佚名     2007-3-14 17:09:57        来源:不详  浏览次数:

 

 

 

 

 

 

 

 

 

EJB 3.0极其重视开发的简易性,并调整了模型。这绝非巧合,因为规范的主要设计者:Linda DeMichiel选择了广泛听取外界的意见,并借鉴TopLink等产品所取得的经验。这样一来,这项规范就可以沿着已经由流行、得到公认的技术开辟出来的道路前进,而这些道路实际上成了业内事实上的最佳实践。

那么,作为程序员的你,面对新的规范,该做哪些准备呢?

处理好架构问题

首先要确保你的架构可以利用持久性方面的标准及认可的设计模式。实际上,这可能需要改动你的应用程序,不过如果你期望应用程序能经得起时间的考验,那么进行这种投入是值得的。使用会话外观、数据访问对象(DAO)层或者服务层总是好主意,不过在这里它们都至关重要。如果你的应用程序已经使用远程实体构建而成——虽然这种做法并不常见,那么就需要重新设计架构。访问持久性对象之前,应当先部署可远程化服务层。如果要使用实体,它就应当完全是本地实体。

不过,使用本地实体不是目的,因为实体还为部署人员提供了为实体声明事务和安全需求的功能。EJB 3.0不允许任何这些属性在实体层面进行设定。相反,实体的运行环境将由调用者来确定,所以所需的任何事务或者安全环境将由负责封闭的J2EE组件来安装或者声明。

CMP应用程序

如果你已经是容器管理持久性(CMP)用户,那么你可能迫不及待地想获得新特性,希望抛弃无关的接口、不必要的bean代码以及繁琐的XML部署描述符,这些是与以前的实体bean开发相关的一些烦人问题。分别要扩展EJBObject和EJBLocalObject的远程和本地接口再也不需要了;现在实体只要实现普通Java接口(POJI)即可,如果它们选择这么做的话。

其次,你可能在想如何更容易地在容器中部署EJB,或者甚至根本不用部署,而是在独立环境中的容器外面进行测试。因为实体是具体的普通Java对象(POJO),你就可以像一直以来创建Java对象的方式那样,即使用new()来创建。

POJO应用程序

可以通过实体管理器(EntityManager)访问大部分新的持久性API。实体管理器可以注入到会话bean里面,或者用Java命名和目录接口(JNDI)进行查询。实体管理器代表事务的持久性上下文。一旦发现操作单元或者实体管理器管理的对象在事务结束后“很脏”,就会被写到外面的数据存储区。

应用程序可以通过抽取含有操作单元/会话工件(artifact)的代码,让自己不受全面变化的影响。这样一来,就可以通过可插入方式来获得所用的实际会话。定义会话、然后允许包围层把它与外界隔离开来,这类似EJB 3.0容器所采用的依赖注入范例(dependency injection paradigm)。应用程序中使用的所有资源应当采用这种模式。在EJB 3.0中,标准资源将由应用程序声明,随后在运行时被注入到bean里面。

采用标准特性

EJB 3.0的许多特性可以在TopLink存在已久的特性当中找到影子。只要使用这些特性,你就能够拥有EJB 3.0的功能,虽然API还没有完成。

查询就是这样一个方面,你现在可以开始使用EJB 3.0的特性。EJB 3.0查询可以从实体管理器获得,并且可以在上面执行。可以在你需要直接查询SLQ、并通过查询返回对象的少数情况下,创建本地SQL查询。

查询语言往往是造成迁移问题的根源,因为不编写实质性或者穷举性的转换分析工具,就很难实现自动转换。EJB查询语言这种合理、有效的方法可对关系查询语言进行抽象处理,将受益于新增的几项特性。现有的EJB查询语言仍可以适用,不过EJB查询语言方面的更多构件和功能将进一步改进查询语言。使用EJB查询语言编写查询将是明智之举,因为查询语言不会出现重大改变,除了功能上有所添加外。

继承

EJB 2.1从来没有指定真正的、自然的继承。实际上,只有在厂商不设置障碍的情况下才有可能实现继承,不过仍很难定义及管理。EJB 3.0却不会这样。由于具体的Java对象能够彼此继承,也用不着定义约束继承范围的方法,所以你能够创建任意深度及广度的实体继承层次。

目前可以通过TopLink Mapping Workbench或JDeveloper、映射Java对象的GUI工具以及用于映射对象的基于Java的API,获得同样的这种灵活性。现在你可以创建域模型(domain model),以遵守适合你应用程序的继承策略,而不必等规范发布。

乐观锁定

TopLink支持的乐观锁定(optimistic locking)模型现在将被采用到EJB 3.0模型里面。这种机制对应用程序非常有用,不仅仅是因为在读/写访问比通常为90:10的情况下,它可以大大提高性能;还因为它有助于获得现代系统所需的那种可扩展架构。业界的众多应用程序使用这种主要的锁定范例,来获得Web应用程序所需的可扩展性。只要使用简单方法:为每个乐观锁定的对象采用数据库列和对象版本字段,就很容易获得可移植性。

这种锁定带来了另外的好处:能够使用非连接模式的对象。只要把数据重新并入事务、然后通过乐观锁值验证已改动的对象是不是失效副本,就很容易支持在离线状态下改动数据和关系的功能。

对象-关系映射

想编写面向对象的Java程序,却把数据保存在关系数据库里面,这在以前是困扰应用程序开发的一个重大问题。

决定把用于对象关系映射的标准化元数据和语义添加到EJB 3.0内,这向实现下列功能迈出了一大步:让应用程序能够灵活地把应用程序放在不同数据库上面运行,甚至可以使用不同的持久性框架来进行运行。对象-关系映射标准的第一个阶段将包括如今人们用来映射域模型的几种最流行的映射方法,譬如数据转换和一对一及多对多关系等。随后还会添加“高级”映射方法。


责任编辑:lss
  相关新闻
程序员考试:数据结构笔记
2006年上半年《程序员》试题分析
2005年下半年程序员考试试题结构分析
为什么要学习Java,成为Java程序员
思科证书到期了怎么办—再认证程序介绍
经典的C程序案例
程序员考试补课笔记-第九天
2006程序员第一章系统基础知识[讲义]
2006年软考程序员数据结构复习笔记
程序员考试补课笔记-第六天
为什么要学习Java,成为Java程序员
C++程序设计从零开始之何谓
由“电脑盲”成为高级程序员的语文教师
程序员考试补课笔记-第一天
程序员考试补课笔记-第三天
程序员考试补课笔记-第二天
程序员考试补课笔记-第四天
程序员考试补课笔记-第七天
程序员考试补课笔记-第六天
程序员考试补课笔记-第八天
  评论
现在有100人对本文发表评论
查看所有评论
 
推  荐
 
100本成功必读热销书
热门招生
  北京文理研修学院   前进大学
  北京明园大学   北京建设大学
  北京邮电大学世纪学院   北方工商管理学院
  联想软件定向委培班   香港数码动画学院
  青年企业管理研修学院   北京华夏管理学院
热门培训
网络化办公专家培训认证 电子科技大学软件学院
软件测试工程师培训认证 北大青鸟十大授权培训
IT硬件工程师培训认证班 北京环球雅思荷兰预科
JAVA开发工程师培训 潜能时代IT服务管理培训
网络信息化工程师培训 清华大学继续教育学院
论坛精选
 
有些细节是男人也该注意的风度!最容易读错的字
某强人手机里保存的30条短信 中国十大高薪职业
最感人的十大韩剧经典台词 嫁给工程师的N个理由
爆强!只有一句话的鬼故事 转贴教你如何做妖精
 女人一定要記住的話 女人最好别嫁给最爱的男人
城市联盟
 大连 上海 天津 广州 西安 深圳  天津  青岛  大连  福州  沈阳  青海  连云港  南京  吉林  厦门  威海  辽宁  呼和浩特
Copyright © 2006   www.edu999.com   All rights reserved. 中国教育招生在线  版权所有
北京市通信管理局[2004]字第552号函    京ICP证040442号