`
happmaoo
  • 浏览: 4472761 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

EJB组件:基本结构解析

阅读更多
EJB规范的主要目的是将企业应用系统开发人员从应用系统级的编程工作中解脱出来,使之可以集中精力进行应用系统中商务规则的系统分析和代码编写工作。

按照EJB2.0规范的定义,EJB组件由Home接口、Remote接口、组件类和部署描述文件构成。应用程序开发人员在编写EJB组件的代码时,必须完整定义组件的各个接口、组件类以及描述组件需要EJB容器提供服务的部署描述文件。

EJB组件的命名规则

EJB规范中定义的会话组件和实体组件分别由Home接口、Remote接口和组件类构成,因此,在组件接口对象和组件类的创建过程中,应遵循统一的命名规则。例如要编写一个用于计算津贴的有状态会话(Stateless SessionBean)类型EJB组件,可以根据组件完成的功能将该组件命名为"CalcBonus",构成该EJB组件其它元素的命名规则如下:

EJB对象

EJB对象表示要创建的EJB组件,没有与之相对应的代码。EJB对象的命名规则是在表示组件商务意义的字符串后附件字符串"EJB"。按照规则,可以将津贴计算EJB组件对象命名为"CalcBonusEJB"。

Home接口

Home接口的命名规则是在表示组件商务意义的字符串后附件字符串"Home"。因此,可以将津贴计算EJB组件的Home接口命名为"CalcBonusHome"。

Remote接口

EJB组件的Remote接口对象可以直接采用表示组件商务意义的字符串进行命名。例如,将津贴计算组件的Remote接口命名为"CalcBonus"。

组件类

组件类的命名规则是在表示组件商务意义的字符串后附加"Bean"。例如,将津贴计算组件类命名为"CalcBonusBean"。

EJB组件的Home接口

EJB组件的Home接口用于定义创建、查找和删除组件对象实例的方法。以有状态会话类型EJB组件CalcBonusEJB为例,其Home接口定义如下面代码所示:

<ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="550" align="center" bordercolorlight="black" border="1"><tbody><tr><td class="code" bgcolor="#e6e6e6"><pre><ccid_code>public interface CalcBonusHome extends EJBHome { public CalcBonus create() throws CreateException,RemoteException; public CalcBonus create( int nRate ) throws CreateException, RemoteException; public void remove() throw RemoteException; }</ccid_code></pre></td></tr></tbody></table></ccid_nobr>

在上述定义中,EJB组件的Home接口继承EJBHome接口,在该接口中包括两个异构类型的创建组件对象实例的create方法,两个方法均返回该EJB组件的Remote接口对象。在Home接口中还定义了用于从EJB容器的组件实例池中删除组件对象实例的remove方法。该方法对应于EJB组件类中定义的ejbRemove方法。

对于实体类型EJB组件,在组件的Home接口中还应定义查找组件对象实例的方法,用于客户端根据实体组件的主键值在EJB容器中查找指定的实体类型EJB组件。该方法的定义和实现过程将在第6讲中详细讲解。

另外,Home接口中定义的create方法和remove方法能够抛出的RemoteException和CreateException类型异常。两种类型的异常定义在java.rmi包中并且异常的参数和返回值类型均为合法的RMI-IIOP类型。由异常的返回值形式可以看出:EJB组件对象的Home接口是对Java RMI-IIOP协议有效的接口,客户端应用可以基于RMI-IIOP协议访问部署在EJB容器中的组件对象的Home接口。

在Home接口中定义的方法除了能够抛出上述系统异常外,EJB组件的设计人员可以定义用户类型异常并Home接口中定义的方法抛出。

EJB组件的Remote接口

EJB组件的Remote接口用于定义客户端应用程序能够调用的组件商务方法。与Java接口定义相似,在Remote接口中定义的商务方法只是一个框架而没有具体的实现代码。EJB组件设计人员根据Remote接口中定义的商务方法在组件类中为这些方法编写实现代码。有状态会话类型EJB组件CalcBonusEJB的Remote接口定义如下:

<ccid_nobr><table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="550" align="center" bordercolorlight="black" border="1"><tbody><tr><td class="code" bgcolor="#e6e6e6"><pre><ccid_code>public interface CalcBonus extends EJBObject { public float calculateBonus() throws RemoteException; public float calculateTax( float fRate,float fBonus ) throws RemoteException; }</ccid_code></pre></td></tr></tbody></table></ccid_nobr>

EJB组件的Remote接口继承定义在javax.ejb包中的EJBObject接口。在Remote接口中定义了两个名称分别为calculateBonus和calculateTax的方法。两个方法均抛出RemoteException类型异常。由Remote接口中定义的方法能够抛出的异常类型可以看出:Remote接口同样是对于Java RMI-IIOP协议有效的远程接口。
分享到:
评论

相关推荐

    EJB教程,EJB参考书

    - **1.1.1 EJB组件开发者(Enterprise Bean Provider)**:负责设计和实现EJB组件,包括定义其远程和本地接口,编写业务逻辑代码,并创建部署描述符。组件开发者需专注于业务逻辑,而系统级的细节如事务管理、线程...

    精通EJB

    一、EJB组件结构与特点 1. 服务端组件:EJB是服务端的组件,用于构建基于Java的企业级分布式应用。它们不作为独立运行的程序,而是大型系统中的组成部分,实现特定功能。 2. 可移植性和可重用性:EJB标准旨在确保...

    实战EJB 实战EJB 实战EJB

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

    ejb 3.0 jar 包 很全 part2

    通过JMX,开发者可以远程控制和监控服务器上的EJB组件。 `hibernate-annotations.jar`:Hibernate是一个流行的对象关系映射(ORM)框架,而Hibernate Annotations是其一部分,提供了在Java实体类上使用注解来定义...

    探索Java EE的企业心脏:EJB的深度解析

    1. **业务逻辑封装**:将复杂的业务逻辑封装在EJB组件中,使其与表示层分离,提高模块化程度。 2. **事务管理**:提供声明式和编程式事务管理,简化了事务控制的复杂度。 3. **安全性**:支持细粒度的安全策略,增强...

    B-S结构与C-S结构的EJB编写实例代码

    在EJB的B/S架构中,EJB组件通常运行在应用服务器上,提供服务给通过HTTP协议请求的Web客户端。这种架构的优势在于易于部署和维护,因为所有更新只需要在服务器端进行,且用户可以使用任何支持Web的设备访问应用。 C...

    EJB初学者常有的十一个疑惑

    - 客户端通过容器间接访问EJB组件,容器充当了EJB组件的代理。 - **用途**:处理复杂的业务逻辑、事务管理和安全性等。 #### 二、EJB 2.0相较于EJB 1.1的改进 EJB 2.0相对于EJB 1.1的主要改进包括: - **容器...

    EJB导论.doc

    理解EJB组件的关键在于把握其运行时的行为语义。Home接口是EJB库使用客户端创建EJB实例的入口,包含一个或多个create()方法用于实例化。EJBObject作为客户端与EJB实例交互的代理,封装了远程调用的细节,提供了过程...

    实战EJB

    **开发和部署测试程序**:为了验证EJB组件的正确性,开发者需要编写测试程序,这通常包括客户端代码,用于调用EJB的方法并检查返回结果。测试程序可以在应用服务器上运行,以模拟实际环境下的行为。 **运行测试程序...

    基于Struts1.2和EJB3.0整合的一个小项目

    2. **标注EJB组件**:使用注解如`@Entity`,`@Stateless`,`@PersistenceContext`等来声明EJB组件及其依赖。 3. **创建JNDI查找**:在Struts的Action中,通过JNDI查找来获取EJB实例,调用其方法执行业务操作。 4. **...

    ejb接口

    在提供的`ParseXml.java`文件中,我们可以推测这可能是处理XML解析的EJB组件的一部分。XML解析在企业级应用中广泛用于数据交换和配置文件读取。例如,EJB可能会使用DOM、SAX或StAX等API来解析XML文档,获取其中的...

    agent-ejb-2.1.6.jar.zip

    "agent-ejb-2.1.6.jar.zip"是一个包含EJB组件的压缩文件,它对于理解Java企业级应用的架构和开发至关重要。本文将深入探讨EJB、jar格式以及如何使用和管理这个特定的版本。 首先,EJB是一种面向服务的架构(SOA)...

    精通EJB2.0 书籍源码

    - **Jasmine**:可能是一个测试框架,用于测试EJB组件。 - **CORBA**:Common Object Request Broker Architecture,是一种跨平台的分布式对象计算技术,EJB2.0可以与CORBA集成,实现不同系统间的互操作。 - **...

    EJB概要描述了EJB中最为重要的知识点

    EJB生态系统涉及多种角色,包括但不限于开发者、部署者、容器提供商等,这些角色共同协作以确保EJB组件的成功部署和运行。 #### 七、面向服务架构(SOA) 1. **定义**:SOA是一种设计思路,强调将应用程序构建为一组...

    Study EJB_Note

    这包括理解EJB组件的结构、生命周期和部署过程。 3. **会话Bean**:掌握两种主要的会话Bean类型——Stateful Session Bean和Stateless Session Bean的创建与使用。这部分将探讨它们的特点、适用场景以及如何通过...

    ejb-3_0spec-simplified

    1. **POJOs as EJBs**:EJB3.0允许使用普通的Java对象(Plain Old Java Objects,简称POJOs)作为EJB组件,这意味着开发者可以不再依赖于EJB容器提供的接口和实现类,而是直接在POJO上应用注解来定义EJB的行为和特性...

    精通EJB(3th-en)

    ### 精通EJB(第三版)核心...本书通过丰富的示例和详尽的技术解释,帮助读者从理论到实践全面掌握EJB技术的核心要点,无论是对于学习EJB基础知识,还是进行具体的EJB组件开发,亦或是探索高级主题都有着重要的指导意义。

    EJB入门课件(PPT)

    在这一部分,你将学习如何创建和部署一个基本的EJB组件。首先,你需要了解EJB容器的角色,它是如何管理和支持EJB组件的生命周期。然后,将学习如何使用EJB的API定义实体Bean、会话Bean和消息驱动Bean。实验中,你将...

Global site tag (gtag.js) - Google Analytics