`
tomrose
  • 浏览: 147425 次
  • 来自: ...
社区版块
存档分类
最新评论

ejb2 和 ejb3的区别

    博客分类:
  • ejb
阅读更多
EJB 3 和EJB 2.1 的区别

从整个EJB 规范的角度来说,EJB 3 和EJB 2.1最大变更在Entity Bean 持久化
API 上。在EJB3 中,Entity Bean持久化已经单独作为一个Persistence API
规范和其他的EJB 部分分离开来。下面我们主要讨论EJB 3 和EJB 2.1在持久化
API 上的区别。

EJB 2.1模型存在复杂度高的缺陷:
       EJB 2.0 模型要求创建多个组件接口并实现多个不必要的回调方法组件接口要求实现 EJBObject 或 EJBLocalObject 以及处理许多不必要 的异常

       基于XML 的EJB 2.0 部署描述符比较复杂并容易出错

       基于 EJB 模型的容器管理持久性在开发和管理方面过于复杂,并且失去了几个基本 特性--如使用数据库序列定义主键的标准方法

       EJBQL 语法非常有限,而且是静态的,无法做到运行期间的动态查询

       EJB 2.0 组件并非是真正面向对象的,因为它们在继承和多态性方面的有
使用限制开发人员无法在 EJB 容器外部测试 EJB 模块,而在容器内部调试 EJB非常复杂和耗时查 和调用 EJB 2.0 是一项复杂的任务。即使是在应用程序中使用最基本的 EJB 也需要对 JNDI 有一个详细的了解对容器的依赖使得EJB 2.0只能用于服务器组件的开发,无法实现一次编写,四处运行的面向构件的开发所有这些复杂度和缺陷,都导致EJB 2.0的采用无法真正简化开发并提高生产力。

EJB 3.0 旨在解决以往EJB 2.0 模型的复杂性和提高灵活性,具体体现在:

       消除了不必要的接口Remote, Home, EJB 以及回调方法实现

       实体Bean 采用了POJO模型,一个简单的javabean 就可以是一个EntityBean。无需依赖容器运行和测试

       全面采用O/R Mapping技术来实现数据库操作实体Bean 可以运用在所有需要持久化的应用,不管是客户端还是服务器端。从而真正实现面向构件的开发实体 bean 现在支持继承和多态性

       灵活丰富的EJB3 查询语言SQL支持
       使用元数据批注代替部署描述符,减少复杂配置和提高可维护性
       将常规 Java 类用作 EJB 并将常规业务接口用于 EJB

EJB 3 中的元数据批注:Annotation

EJB3 规范中引入了元数据批注(Annotation)。Annotation 是从J2SE 1.5 始
称为java语言的一部分。Annotation 并不是一个新的事物,在J2SE 1.5 以前,
人们已经自行引入了象著名的XDoclet 等外挂式的元数据批注方法。而在.NET
中,元数据批注也早已经是C#语言的成分了。
在以往,我们都是采用xml 作为配置批注,但采用文本的xml配置存在一些缺陷:
       描述符多,不容易记忆和掌握
       无法做自动的校验,需要人工排错
       当系统变大时,大量的xml配置难以管理
       读取和解析xml配置非常耗时,导致应用启动缓慢,不利于测试和维护
       做O/R Mapping 的时候需要在java 文件和xml 配置文件之间交替,增大
       了工作量
运行中保存xml配置需要消耗额外的内存

采用元数据可以很好的解决这些问题:

       描述符大量减少。以往在xml配置中往往需要描述java属性的类型,关
       系等等。而元数据本身就是java语言,从而省略了大量的描述符
       编译期校验。错误的批注在编译期间就会报错。
       元数据批注在java代码中,避免了额外的文件维护工作
       元数据被编译成java bytecode,消耗小的多内存,读取也非常迅速,往
       往比xml配置解析快几个数据量级,利于测试和维护


分享到:
评论

相关推荐

    实战角度比较EJB2和EJB3的架构异同

    【实战角度比较EJB2和EJB3的架构异同】 EJB,即Enterprise JavaBeans,是Java EE(企业版Java)平台的核心组件之一,用于构建可复用、分布式的服务器端应用程序。EJB2和EJB3是EJB技术的两个主要版本,它们在架构上...

    ejb2.0与ejb3.0的区别

    ### EJB2.0与EJB3.0的主要区别 #### 一、简介 企业Java Beans(EJB)是Java平台为企业级应用提供的一种组件模型。随着技术的发展,EJB经历了多个版本的迭代,其中EJB 2.0和EJB 3.0是两个重要的里程碑版本。本文将...

    EJB2和EJB3的架构异同.doc

    JPA允许直接将领域模型类(Domain Model)持久化到数据库,避免了EJB2中实体Bean和Model类之间的转换。EntityManager作为JPA的核心,负责管理实体的生命周期,包括查询、创建、更新和删除。尽管JPA允许使用注解代替...

    EJB2和EJB3 消息驱动bean

    ### EJB2与EJB3消息驱动Bean:深入解析与应用 #### 一、EJB2消息驱动Bean ##### 1. **理解消息驱动Bean(MDB)** 消息驱动Bean是Java EE中用于处理异步消息的一种特殊类型的EJB。在EJB2中,MDB主要用于接收来自消息...

    struts2-ejb3配置

    Struts2和EJB3是两个在Java Web开发中广泛使用的框架,Struts2主要用于处理MVC模式的前端控制,而EJB3则提供企业级的服务,如事务管理、安全性和持久化等。将这两者整合在一起,可以利用EJB3的强大功能来处理复杂的...

    struts2+ejb3框架

    Struts2和EJB3是Java开发中两个重要的框架,它们在企业级应用开发中扮演着关键角色。Struts2是一个MVC(Model-View-Controller)框架,用于构建基于Java Servlet的应用,它极大地简化了用户界面和业务逻辑的交互。而...

    实战EJB 实战EJB 实战EJB

    2. **容器**:管理和执行EJB组件,提供诸如事务管理、安全性、持久化和生命周期管理等服务。 3. **EJB组件**:封装业务逻辑,可以是会话Bean或实体Bean。 **EJB开发人员的角色分配** 1. **Business Logic ...

    ejb3 带源码

    EJB3是EJB规范的一个重要版本,它在EJB2的基础上进行了重大改进,极大地简化了开发流程,降低了对开发者的要求。"ejb3 带源码"的资源,如"Mastering EJB3"和"Beginning EJB3 Application Development"等,提供了深入...

    Mastering EJB 2nd edition

    2. **组件模型**:详细讲解EJB组件的生命周期、状态管理和事务管理,以及如何设计和实现符合EJB规范的bean。 3. **容器服务**:涵盖EJB容器提供的服务,如安全性、持久化、调度和并发控制,以及如何利用这些服务来...

    EJB3的三本好书第3本 Mastering EJB3 4ed

    pdf书籍加源代码 EJB3的三本好书之三,也很不错的一本ejb3的书籍,是英文版,...2. EJB3 in Action 2007联接http://download.csdn.net/source/1865636 3. Mastering EJB3联接http://download.csdn.net/source/1865654

    EJB3 PPT教程

    这个PPT教程详细介绍了EJB3的各种核心概念和技术,旨在帮助学习者掌握EJB3的核心特性并能实际应用到项目开发中。** **一、SessionBean** SessionBean是EJB中的一个关键组件,它代表了业务逻辑,通常处理单个客户端...

    spring与ejb的区别

    ### Spring与EJB3.0的关键区别及其优劣分析 #### 一、Spring框架概述 **1.1 引言** Spring作为一个广受欢迎的开源框架,最初被设计用于减轻企业级应用开发中的复杂性问题。它的一个显著特点在于模块化的分层架构...

    ejb3_structs

    在Java EE(Enterprise Edition)应用程序开发中,EJB3和Struts是两个重要的组件,分别负责业务逻辑管理和用户界面展示。 **EJB(Enterprise JavaBeans)3.0** 是Java EE平台的核心部分,它提供了用于构建分布式、...

    ejb2的资料,作者雨夜。

    然而,EJB2的复杂性和重量级特性也是其被批评的地方,后续的EJB3版本对这些问题进行了简化和优化,引入了更轻量级的注解驱动模型。尽管如此,理解EJB2仍然是理解和学习EJB以及企业级Java开发历史的重要部分。

    ejb3进阶案例

    总结,ejb3进阶案例涵盖了ejb3的核心组件,通过实践可以在理解ejb3特性的基础上,提升在JBoss 5上的应用开发和部署能力。通过深入学习和实践这些案例,开发者能够更好地掌握ejb3的精髓,从而构建出高效、稳定的企业...

    EJB3基础教程

    EJB3支持单元测试和集成测试,提供了诸如`@EJB`注解注入、模拟bean等工具,便于测试。 总之,EJB3是企业级Java开发的重要组成部分,通过其强大的功能和简化的API,使得开发者能够更专注于业务需求,而非底层基础...

    ejb2.rar_bmp ejb2_ejb2_ejb2 cmp b

    在 ejb2.rar_bmp ejb2_ejb2_ejb2 cmp b 这个压缩包中,我们看到的是针对EJB 2.1规范的一个登录实例,它涉及到了两种主要的实体Bean管理策略:CMP(Container-Managed Persistence,容器管理持久化)和 BMP(Bean-...

    EJB3入门例子

    2. **持久化框架(Persistence Framework)**:EJB3引入了JSR-220规范的JPA(Java Persistence API),使得对象关系映射变得更加简单。通过`@Entity`、`@Table`、`@Id`等注解,开发者可以直接在Java类上定义数据模型...

    EJB3应用实例

    1. **注解驱动**:EJB3摒弃了EJB2.x中的XML配置,大量使用Java注解来声明bean的角色、事务属性、安全角色等,大大减少了部署描述符的编写工作。 2. **无状态会话bean(Stateless Session Beans,SSB)**:这类bean...

    EJB3的三本好书第2本, EJB3 in Action 2007

    pdf书籍加源代码 EJB3的三本好书第二本,最好的介绍ejb3的书,看过之后,其他的...2. EJB3 in Action 2007联接http://download.csdn.net/source/1865636 3. Mastering EJB3联接http://download.csdn.net/source/1865654

Global site tag (gtag.js) - Google Analytics