EJB概述

 

    EJB含义为企业Java Beans。EJB是J2EE平台的重要组成部分。开发者可以在J2EE平台使用基于组件的体系结构,该结构目的为企业级应用程序提供多层、分布式和高度事务性等特性。

    EJB提供了一种开发和部署基于组件的企业应用程序的体系结构,考虑到健壮性、高可伸缩性和高性能。EJB应用程序可以部署在任何符合J2EE 1.3标准规范的应用服务器上。

    在本博客系列中,我们将详细讨论EJB3.0。

一、分类

    EJB主要分为三类;下表列出了它们的名称和简要说明–

    EJB 依照特性的不同,目前区分为三种,分别是 Session Bean ,Entity Bean ,以及 Message Driven Bean 。其中 Session Bean 与Entity Bean 算是 EJB 的始祖,这两种 EJB 在 EJB 规格 1.x 的时候就已经存在了,而 Message Driven Bean 则出现在 EJB 2.0 的规格中。

类型描述
Session Bean会话bean为单个会话存储特定用户的数据。它可以是有状态的或无状态的。与实体bean相比,它的资源密集度更低。一旦用户会话终止,会话bean就会被销毁。
Entity Bean实体bean表示持久数据存储。用户数据可以通过实体bean将数据保存到数据库中,也可以通过实体bean对数据库检索。
Message Driven Bea消息驱动bean用于JMS(Java消息传递服务)环境中。消息驱动bean可以使用来自外部实体的JMS消息并依次执行。

   (一)Session Bean 

    Session Bean 主要的目的是让程序开发者将逻辑层抽离,特别是复杂的逻辑可以放在 Session Bean 中。 Session Bean 还可以再细分为Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method 之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的 Stateful Session Bean 的实体 (Instance 注一 ) ,换言之,当使用者呼叫某个 Stateful Session Bean 的两个 methods 的时候,EJB Container( 注一 ) 会清楚的知道某个 EJB 的实体属于某一个使用者的。因此一般的设计上,不会让两个使用者同时使用某个 Stateful Session Bean ( 这并不是表示两个使用者不能使用同一个 Stateful Session Bean) 。


    Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method ,换言之,很可能数个使用者在执行某个 Stateless Session Bean 的 methods 时,会是同一个 Bean 的 Instance 在执行。


    从内存方面来看, Stateful Session Bean 与 Stateless Session Bean 比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。


    (二)Entity Bean

     Entity Bean 主要是资料组件, Entity Bean 主要的目的,在于提供资料,也就是说程序设计师可以将 Entity Bean 当程序资料,至于 Entity Bean 实际上怎么存取实际上的数据库,那个则是另外一件事情。


    Entity Bean 实际上是针对 RDBMS 而设计,也就是说当其它的程序使用 Entity Bean 的时候, Entity Bean 的资料主要是从 RDBMS 而来,当然,如果程序设计师熟悉 Entity Bean 的运作,那么也可以很轻易的把RDBMS 用其它的数据库取代,像是 LDAP 。


    Entity Bean 主要区分为 Bean-Managed Persistence 以及 Container-Managed Persistence ( 简称 BMP 及 CMP) ,这两种 Entity Bean 的型态不同,但是目的相同,都在于提供资料!这两种 Entity Bean 主要的差别在于维护资料的角色, BMP 是由 Bean 自行维护资料的一致性,而 CMP 则是由 EJB Container 来维护。一个 Entity Bean 往往代表一张RDBMS 的表格,这个表格内的一笔一笔的资料,则是透过另外一个叫做 Primary Key( 注三 ) 的 Class 来加以区分。

  (三)Message Driven Bean

     Message Driven Bean 与 Session Bean 或是 Entity Bean 均不相同,一般 Session Bean 或是 Entity Bean 都可以让使用者主动触发(可以在需要的时候,呼叫他们的 method 来触发他们),但是 Message Driven Bean 主要的目的在于反应 Message Queue 中的事件。

 

二、EJB的优点

    以下是EJB的重要优点-

    1 简化了大型企业级应用程序的开发。

    2 Application Server/EJB容器提供了大多数系统级服务,如事务处理、日志记录、负载平衡、持久性机制、异常处理等。开发人员只需关注应用程序的业务逻辑。

    3 EJB容器管理EJB实例的生命周期,因此开发人员不必担心何时创建/删除EJB对象。

参考:https://www.iteye.com/blog/jessicacao-257289

           https://www.tutorialspoint.com/ejb/ejb_overview.htm

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值