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

Enterprise JavaBeans导论5

阅读更多

实体bean的内外存交换
  现在应该来看看javax.ejb.EntityBean接口。
  
  public interface javax.ejb.EntityBean extends EnterpriseBean {
  public void ejbActivate() throws RemoteException;
  public void ejbPassivate() throws RemoteException;
  public void ejbRemove() throws RemoteException,RemoveException;
  public void setEntityContext(EntityContext ctx) throws RemoteException;
  public void unsetEntityContext() throws RemoteException;
  public void ejbLoad() throws RemoteException;
  public void ejbStore() throws RemoteException;
  }
  
  活化和钝化的过程与会话bean类似。然而,不在事务中的实体bean是无状态的;其状态总是和底层的数据同步的。如果我们象钝化会话bean那样钝化实体bean,则当钝化无状态实体bean时只会删除它。但是因为容器调用finder方法需要匿名的实体bean,容器可能为此把不活动的实体bean钝化到一个私有内存池中。一旦从EJBObject中删除实体bean,则同时删除了标识符(主键关联)。
  当客户端调用没有相关的实体bean的EJBObject的商业方法时,容器就可能用这个内存池重新分配实体bean. 注意这个内存池中的bean没有标识,可以被任何EJBObject重用。容器可以可以不维护任何有EJBObject的实体bean,除非有一个商业方法在通过EJBObject被调用。如果实体bean在事务中则需保持其与EJBObject的关联。
  
  自管理的持久性
  因为实体bean代表底层的数据,因此我们需要把数据从数据从数据库中取出然后放在bean中。当容器第一次把一个实体bean的实例与EJBObject关联时,它就开始了一个事务并调用了这个bean的ejbLoad()方法。在这个方法中开发者必须提供从数据库中取出正确的数据并把它放在bean中。当容器将要提交一个事务它首先调用bean的ejbStrore()方法。这个方法负责向数据库中回写数据。我们称之为自管理持久性,因为bean方法中的代码提供了这种同步。
  当ejbLoad()方法完成时,bean有可能与底层数据库不一致。商业方法的调用触发了与EJBObject关联的bean的分配,然后在事务中执行的ejbLoad()必须在部署描述符中声明。根据接收到的方法调用请求,EJBObject和容器一起建立一个事务上下文。容器分配EJBObject的bean并调用bean的ejbLoad()方法。这个方法现在运行在事务上下文中。这个事务上下文传递给数据库,根据部署描述符中指定的孤立性级别,这个事务锁定数据库中被访问的数据。
  只要事务上下文活动,数据库中的数据就一直保持锁定状态。当客户端或容器提交事务时,容器首先调用bean的ejbStore()方法,把bean中的数据回写到数据库中。
  相应的数据库记录在ejbLoad()和ejbStore()间保持锁定保证了bean和数据库间的同步。其间可以进行不同的商业方法调用。而且,ejbLoad()和ejbStore()明确地区分了事务边界,事务中可以进行任何商业方法调用。事务的持续时间由部署描述符决定,也可能由客户端决定。注意不必使用ejbActivate()和ejbPassivate()方法来执行与数据库间的同步。
  
  容器管理的持久性
  如果部署描述符声明bean使用容器管理的持久性,则不用ejbLoad()和ejbStore()来访问数据库。容器会把数据从数据库中导入到bean中,然后调用bean的ejbLoad()方法来完成从数据库中接收数据。
  同样地,容器调用bean的ejbStore()方法来完成把数据回写到数据库中。这些方法实际上没有执行任何数据库操作。当开发商用复杂的工具来提供容器管理持久性时,如自动产生能进行对象--关系映射的实体bean类,规范规定了厂商必须提供的容器管理实体持久性的最小需求集。
  部署描述符可以指定bean的一个public域来实现与数据库列简单映射。容器使用部署描述符读出bean的这个public域并写到相应的列,或从数据库列中读出数据写到public域中。容器管理的持久性对EJB开发者来说是非常好的服务,且不需对象--关系影射等其他复杂的机制,开发者会发现它比自管理的持久性更有效率。
  
  部署描述符
  区分EJB开发的角色
  EJB开发中两个主要的角色是bean开发者和bean部署者。有很多属性开发者不能预知,如数据库的网络地址,使用的数据库驱动程序等等。部署描述符作为由开发定义的特性表,由部署者添入正确的值。部署描述符有标准的格式,在开发和部署环境中是可移植的,甚至在不同EJB平台间也是可移植的。 Enterprise bean的行为控制
  除了为开发和部署的协同提供一个标准的属性单,部署描述符也应包含bean应如何执行有关事务和安全的细节信息。一些如访问控制链(ACL)等属性,也应该由部署者来调整以保证适当的用户能在运行时使用bean.其它属性,如事务信息,有可能完全由开发者指定,因为一般由开发者创建数据库访问代码,并熟知bean的方法应如何运行事务。定义部署描述符
  部署描述符是一个标准的Java类。创建一个实例,导入数据,然后串行化。这个串行化的部署描述符放在一个jar文件中并和enterprise bean类一起送到部署环境。部署者读取这个串行化的部署描述符,可能修改一些属性值,然后使用这个修改后的部署描述符来安装enterprise bean.
  下面是部署描述符的一部分内容。它是两个其它的部署描述符类的超类。实际上超类是描述这个bean的描述符。
  
  Javax.ejb.deployment.DeploymentDescriptor
  ·bean home name
  ·bean class name
  ·home interface class name
  ·remote interface class name
  ·environment properties
  ·control descriptors
  ·access control list
  
  DeploymentDescriptor有两个子类:
  
  javax.ejb.deployment.SessionDescriptor
  ·state management type
  ·session timeout
  
  javax.ejb.deployment.EntityDescriptor
  ·list of ocntainer-managed fields
  ·primary key class name
  
  描述符为实体bean和每个方法定义了事务和安全属性。这些对象的一个数组在DeploymentDescriptor中指定。
  
  javax.ejb.deployment.ControlDescriptor
  ·transaction isolation level
  ·Method object to which this descriptor applies
  ·run-as mode(for odentity mapping)
  ·run-as identity(for identity mapping)
  ·transaction attribute
  
  部署一个enterprise bean时,分配对应的描述符,然后初始化,串行化,再将其与enterprise bean类一起放入到一个jar文件中。不同厂商在定义部署描述符时可能有不同的方式。例如,一个厂商可能使用文本方式,而另一厂商可能提供图形工具。但最后结果的部署描述符是一个标准的格式,并且在不同平台间是可移植的。
  
  EJB Jar文件
  为了包装一个enterprise bean,bean的类,接口和串行化的部署描述符放在一个jar文件中。这个jar文件必须有一个manifest文件的入口以声明一个enterprise bean的部署描述符。
  Name:AccountDD.ser
  Enterprise-Bean:true
  在manifest中作为enterprise bean列出的是部署描述符,而不是bean类。部署描述符除了定义enterprise bean,还提供jar文件中所有文件的完整描述。开发者不必关心EJB jar文件的创建。厂商应该提供一个工具来帮助开发者创建部署描述符,然后把所有必须的文件打包进一个jar文件中。 

FROM:http://java.chinaitlab.com/EJB/20120.html

分享到:
评论

相关推荐

    Enterprise JavaBeans 3.0(第5版) chm

    本书主要介绍EJB3.0标准,是获奖权威参考书Enterprise JavaBeans的最新第5版。全书内容主要分为两大部分,第一部分是EJB 3.0的标准技术手册,主要介绍EJB概念、EJB工作原理及使用方法;第二部分是JBoss实践指南,...

    Enterprise JavaBeans 3.0中文版(第5版)

    ### Enterprise JavaBeans 3.0概述 #### 一、企业级应用开发背景 在现代企业级应用开发领域,Java技术一直扮演着至关重要的角色。随着业务需求的不断增长和技术的快速发展,开发人员需要构建出更加灵活、高效且可...

    Enterprise JavaBeans 3.0

    由于提供的文件内容中并没有实际的关于"Enterprise JavaBeans 3.0"的具体知识点,而只是提到了一本书的标题、描述和标签,并且重复了大量访问网站的信息。为了满足您的要求,我将从标题和描述中提到的《Enterprise ...

    Applying Enterprise JavaBeans Second Edition

    Applying Enterprise JavaBeans Second Edition

    Mastering Enterprise JavaBeans

    Mastering Enterprise JavaBeans Chinese Version.

    Enterprise JavaBeans 3.0 Documentation

    Enterprise JavaBeans(EJB)是Java平台上用于构建可扩展、安全和事务处理的企业级应用程序的框架。EJB 3.0是该技术的一个重大更新,它引入了许多改进,旨在简化开发过程并提高开发者效率。本文档集合是EJB 3.0规范...

    Mastering Enterprise JavaBeans 3rd Edition .pdf

    ### 《Mastering Enterprise JavaBeans 第三版》关键知识点概览 #### 一、书籍基本信息 - **书名**:《Mastering Enterprise JavaBeans》第三版 - **作者**:Ed Roman, Gerald Brose, Rima Patel Sriganesh - **...

    Enterprise JavaBeans 4th Edition

    《Enterprise JavaBeans 4th Edition》是一本专为深入理解J2EE(Java 2 Platform, Enterprise Edition)和Web服务的开发者所准备的经典教程。在Java企业级开发领域,Enterprise JavaBeans(EJB)是核心组件之一,它...

    Reilly.Enterprise.JavaBeans.3.1.6th.Edition.2010

    《Reilly.Enterprise.JavaBeans.3.1.6th.Edition.2010》是针对JEE6(Java Enterprise Edition 6)平台的一本权威指南,特别关注于Enterprise JavaBeans(EJB)3.1版本。这本书由Oracle Corporation认证,为希望获得...

    Enterprise JavaBeans, 3.0

    Enterprise JavaBeans™ is the core component technology of the Java Enterprise Edition platform. It is an enterprise infrastructure designed to provide developers with the automatic management of many...

    Enterprise JavaBeans™ 3.1

    ### Enterprise JavaBeans™ 3.1 技术详解 #### 概览 Enterprise JavaBeans (EJB) 3.1 是一项重要的企业级应用开发技术规范,它在 EJB 3.0 的基础上进一步简化了应用程序的开发流程,并引入了一系列的新特性来提高...

    enterprise javabeans2.0程序设计

    Enterprise JavaBeans(EJB)是Java平台企业版(Java EE)的核心组成部分,用于构建可扩展、安全且事务处理能力强的服务器端应用程序。 在EJB 2.0版本中,主要包含了三种类型的组件:会话bean(Session Beans)、...

    Mastering Enterprise JavaBeans 2nd Edition

    - **EJB (Enterprise JavaBeans)**:是一种服务器端组件模型,主要用于构建企业级应用程序,提供了事务管理、安全性、持久性等功能支持。 ##### 2. **EJB容器的作用** - **容器管理**:EJB容器负责管理EJB组件的...

    mastering enterprise javabeans

    5. **持久性管理**:实体Bean与JPA(Java Persistence API)的集成,以及如何使用ORM(对象关系映射)进行数据存储和检索。 6. **事务管理**:EJB如何支持ACID事务,包括自动事务边界和用户管理的事务。 7. **并发...

    Mastering Enterprise Javabeans 3.0.pdf

    《精通企业JavaBeans 3.0》一书深入探讨了JavaBeans规范的最新版本,即3.0版,这是Java企业级开发中的一个重要里程碑。JavaBeans是Java平台的一部分,主要用于构建可重用的组件,这些组件可以被集成到各种应用程序中...

    Enterprise JavaBeans 3.0 5ed.

    Enterprise.JavaBeans.3.0.5th.Edition-OReilly.rar CHM VERSION! SMALL AND FAST. I HAVE TRIED DOWNLOAD THIS BOOK IN CSDN, BUT HAVE NOT FOUND A FULL VERSION(SOME CHINESE VERSION NOT COMPLETE) TO THOSE ...

    Special Edition Using Enterprise JavaBeans™ 2.0

    Special Edition Using Enterprise JavaBeans™ 2.0

Global site tag (gtag.js) - Google Analytics