`
isiqi
  • 浏览: 16085880 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

程序员应用EJB 3.0必要的准备

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

本文转自
http://java.chinaitlab.com/EJB/356292.html
分享到:
评论

相关推荐

    EJB3.0入门经典(PDF)

    《EJB3.0入门经典》是关于EJB 3.0的专业技术教程,从实用的角度出发,理论联系实际,用9章的篇幅详细讲解了EJB 3.0开发的方法和技巧。《EJB3.0入门经典》内容丰富,讲解由浅入深,全面系统,在讲解EJB 3.0最新开发...

    ejb3.0入门图文教程

    ejb3.0入门图文教程,包括EJB3.0开发Entity.pdf、EJB3.0开发Message Driven Bean.pdf、EJB3.0开发Session Bean.pdf

    精通EJB3.0 中文版 3/3

    罗时飞精通EJB3.0.zip.001 罗时飞精通EJB3.0.zip.002 罗时飞精通EJB3.0.zip.003 《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行了阐述;第二部分重点关注EJB编程的具体内容和...

    ejb3.0实例教程

    虽然 EJB3.0 最终规范出来了一段时间,但对 EJB3.0 的应用还停留在介 绍之中,应用实例更是少之又少,所以作者拟写本书,以简单的实例展现 EJB3.0 的开发过程,希望对大家有所帮 助。 EJB3 最激动人心的是 POJO 编程...

    精通EJB3.0 中文版 1/3

    罗时飞精通EJB3.0.zip.001 罗时飞精通EJB3.0.zip.002 罗时飞精通EJB3.0.zip.003 《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行了阐述;第二部分重点关注EJB编程的具体内容和...

    EJB3.0中文文档

    EJB3.0中文文档,实例教程.EJB3.0中文文档,实例教程.EJB3.0中文文档,实例教程.EJB3.0中文文档,实例教程.

    ejb3.0开发规范PDF

    ejb3.0开发规范,开发ejb3.0过程中的参考文档

    EJB 3.0入门经典 源码

    本书是关于EJB 3.0的专业技术教程,从实用的角度出发,理论联系实际,用9章的篇幅详细讲解了EJB 3.0开发的方法和技巧。  本书内容丰富,讲解由浅入深,全面系统,在讲解EJB 3.0最新开发技术的同时,精心设计了与...

    EJB3.0规范和EJB3.0经典入门(含源码)

    EJB3.0规范和EJB3.0经典入门(含源码) 本材料适合Java程序员、项目经理和系统架构师。学习本材料,您不需要EJB2.x知识,如果具备一些Web和jdbc知识,学习效率会更快些。学习本材料,初级Java程序员应在1个月左右,...

    EJB3.0入门经典源代码.part1

    本书是关于EJB 3.0的专业技术教程,从实用的角度出发,理论联系实际,用9章的篇幅详细讲解了EJB 3.0开发的方法和技巧。  本书内容丰富,讲解由浅入深,全面系统,在讲解EJB 3.0最新开发技术的同时,精心设计了与...

    EJB 3.0从入门到精通

    本书面向EJB 3.0的实际应用开发,通过大量的实例,循序渐进地为读者介绍了有关EJB 3.0开发所涉及的各类知识。全书共分16章,内容依次包含了Java EE概述、EJB基础、搭建EJB环境、会话bean、持久化实体、持久化实体...

    ejb 3.0 jar 包 很全 part1

    ejb 3.0 jar 包 很全ejb 3.0 jar 包 很全ejb 3.0 jar 包 很全ejb 3.0 jar 包 很全ejb 3.0 jar 包 很全ejb 3.0 jar 包 很全ejb 3.0 jar 包 很全

    EJB 3.0实例教程.pdf

    EJB 3.0实例教程.pdf EJB 3.0实例教程.pdf

    ejb3.0开发实例(java工程)

    ejb3.0开发实例,会话bean开发,完整代码,适合入门学者

    EJB3.0规范-EJB3.0 SPECIFICATION

    EJB3.0规范 EJB3.0 SPECIFICATION 官方规范英文版

    EJB3.0入门图文教程

    EJB3.0入门图文教程电子书,Jbuilder 2007,新版JBuilder2007基于Eclipse平台,与以往的JBuilder版本完全不 同.借助于Eclipse的开放平台以及丰富的插件,使得JBulider对当前的流行的框架支持非 常好,同时支持EJB3.0的...

    精通EJB3.0 pdf

    精通EJB3.0 pdf

    ejb2.0与ejb3.0的区别

    ejb2.0 ejb3.0的区别,比较详细讲解两者的区别

    EJB3.0.rar_EJB3.0_ejb_ejb 3.0

    EJB 3.0 开发指南之定时服务非常经典

    EJB3.0+JBOSS+MyEclipse初体验(完整代码和过程)

    在Myeclipse,基于JBOSS EJB3.0实现了EJB3.0的初次体验,确实比EJB2.0方便了许多。文中有完整的过程和代码。

Global site tag (gtag.js) - Google Analytics