`
liliang1222
  • 浏览: 158718 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

EJB读书笔记(二)

    博客分类:
  • EJB
阅读更多
  • 会话 bean

        客户共享 Home ,但是不会共享 bean

每个客户都要得到自己的 EJBObject 引用和 bean

 

  • 实体 bean

客户共享 Home ,而且可能共享 bean

如果两个客户想要访问同一个 Customer Fred Smith #420 ),那么这两个客户都会有同一个 EJBObject 的引用。

 

  • 创建有状态会话 bean

得到 Home 桩后,客户在 Home 上调用 create (创建方法), Home 则创建 bean ,而且会为 bean 创建 EJBObject ,并返回 EJBObject

  • 创建无状态会话 bean

得到一个 Home 桩后,客户在 Home 上调用 create Home 为客户提供一个现有 EJBObject 的桩,但是没有为这个 EJBObject 关联 bean bean 一直待在池中,知道客户使用 EJBObject 桩真正调用一个业务方法时, bean 才会出来

 

  • 消息驱动 bean

消息驱动 bean 没有客户视图。消息驱动 bean 没有向客户展现方法的接口。换句话说,消息驱动 bean 没有 Home 或者 EJBObject ,它们没有 Home 接口或组件接口

 

 

 

客户视图

客户想要的是 bean 的一个引用。但是,客户最多只能得到 bean 的组件接口( EJB 对象)的一个引用。

如果客户想要一个 EJB 对象引用,客户必须得到 bean home 接口的一个引用

客户要在 bean home 上完成一个查找。

 

客户如何使用会话 bean :创建、使用和删除

1.  创建:客户想 home 接口请求 bean 组件接口的一个引用(客户在 home 桩上调用一个 create 方法)

2.  使用:客户调用组件接口中声明的业务方法

3.  删除:客户调用 bean EJB 对象桩上的 remove

 

得到 home 接口桩

1.  得到一个 InitialContext

2.  使用 InitialContext 得到 bean home

3.  把查找的结果指定给 home 接口引用

 

窄化会强制 JNDI 查找返回的对象肯定是 home 接口。


Home 接口规则

1. 导入 javax.ejb.* java.rmi.RemoteException

2. 扩展 EJBHome

3. 声明一个 create ()方法,这个方法要返回组件接口

a)    对于无状态会话 bean ,只能有一个 create ,而且它必须没有任何参数

b)    有状态会话 bean 可以有多个重载的 create 方法,而且不一定非要有一个无参数的 create

c)     有状态 bean 中创建方法的名字必须以 create 开头

 

EJBHome 中的方法

EJBMetaData getEJBMetaData ():从 bean 得到反射之类的信息

HomeHandle getHomeHandle ():对 home 串行化,这样以后就能再次使用这个 home ,而无需通过 JNDI

Void remove Handle h ):告诉 home ,已经用完了一个会话 bean

Void remove Object key ):告诉 home 删除一个实体 bean


 

组件接口的规则

1. 导入 javax.ejb.* java.rmi.RemoteException

2. 扩展 EJBObject

3. 声明一个或多个业务方法啊,这些方法都要抛出一个 RemoteException 异常

a) 参数和返回类型必须是 RMI-IIOP 兼容(即可序列化)

b)  可以有重载方法

c)  每个方法都必须声明一个 RemoteException 异常

d) 可以声明自己的应用异常,但是这些异常不能是运行时异常

 

EJBObject 中的方法

Object getPrimaryKey() :得到实体 bean 的主键

EJBHome getEJBHome() :得到 bean home

Handle getHandle() :保存 EJBObject 的一个引用

Void remove() :已经用完 bean

Boolean isIdentical(EJBObject o) :比较两个 EJB 对象,查看它们是否引用同一个 bean

 

Handle getHandle()

句柄是一个可串行化对象,它知道怎么拿回原来的远程 EJB 对象。句柄本身不是一个桩,但它能得到桩。句柄只有一个方法,就是 getEJBObject() 。这个方法会返回一个类型为 EJBObject 的对象。所以必须对得到的桩进行类型强制转换和窄化。

 

Boolean isIdentical(EJBObject o)

  • 无状态会话 bean

如果两个引用来自同一个 home ,即使这两个桩引用了两个不同的远程 EJB 对象, isIdentical 也返回 true

  • 有状态会话 bean

只要是两个不同的桩,这个方法肯定返回 false

  • 实体 bean

如果两个桩引用了有相同主键的两个实体,这个方法就返 true

 

home 上调用删除方法不是要删除这个 home

home 上调用删除方法只是告诉 home 删除一个 bean 。也就是从这个 home 生成的 bean

在调用一个 home 删除方法时,必须唯一的标识你要删除的那个 bean 。对于实体 bean ,要用主键或者一个句柄来标识 bean ,对于会话 bean ,则必须使用句柄。句柄只适用于远程 home 客户。

远程客户视图 本地客户视图
EJBHome

EJBMetaData getEJBMetaData()

HomeHandle getHomeHandle()

Void remove(Handle h)

Void remove(Object key)

E JBMetaData getEJBMetaData()

HomeHandle getHomeHandle()

Void remove(Handle h)

Void remove(Object key)

EJBObject

Object getPrimaryKey()

EJBHome getEJBHome()

Handle getHandle()

Void remove()

Boolean isIdentical(EJBObject o)

Object getPrimaryKey()

EJBLocalHome getEJBLocalHome()

Handle getHandle()

Void remove()

Boolean isIdentical(EJBObject o)

 

 

 

分享到:
评论

相关推荐

    ssm读书笔记.docx

    POJO的主要特点在于它的无特定规范性,它不遵循像EJB(Enterprise JavaBeans)这样的企业级框架标准,也不包含任何特定的框架接口或实现,如持久化、事务管理等。POJOs通常用于表示数据模型,它们可以作为DTO(Data ...

    《Java高手真经:Java Web高级开发技术》读书笔记模板.pptx

    该资源分为三部分,分别是Java高手真经(高级编程卷):Java Web高级开发技术读书笔记模板、Java Web企业级开发技术EJB和Java Web高级开发技术 frameworks与开源技术。 Java高手真经(高级编程卷):Java Web高级...

    java完美经典读书笔记

    《Java完美经典》读书笔记是Java开发者不可或缺的学习资源,它涵盖了Java编程的各个方面,旨在帮助读者深入理解Java语言,提升编程技巧。以下是对该书笔记的一些核心知识点的详细阐述: 1. **Java基础** - **变量...

    《信息系统项目管理师考试全程指导》读书笔记

    《信息系统项目管理师考试全程指导》读书笔记涵盖了信息系统的基础知识,包括信息系统的定义、功能、类型和发展,以及信息系统建设的复杂性、生命周期和原则。在信息系统的生命周期中,包括系统规划、分析、设计、...

    Java学习笔记(必看经典)

    11. **Java EE(企业版)**:如果笔记涉及到此部分,可能会讲解Servlet、JSP、EJB等用于构建Web应用的技术。 12. **JVM(Java虚拟机)**:了解JVM的工作原理,如类加载、内存管理、垃圾回收等,对于优化Java程序...

    信息系统项目策划管理师考试全程指导读书笔记.doc

    《信息系统项目策划管理师考试全程指导》的读书笔记涵盖了信息系统的基础知识、系统开发基础等多个方面。以下是这些知识点的详细解析: 1. **信息系统基础** - **信息的定义**:信息是系统有序程度的度量,香农将...

    《信息系统项目管理师考试全程指导》读书笔记.doc

    《信息系统项目管理师考试全程指导》读书笔记涵盖了信息系统的基础知识,项目管理的各个方面以及系统开发的基础要点。以下是对这些知识点的详细阐述: 1. **信息系统基础**: - **信息的定义**:信息被定义为系统...

    【读书笔记】Java参考大全-J2EE5版本

    3. **EJB 3.0**:EJB3是J2EE5中的重大更新,它简化了EJB的创建和管理,通过注解和接口方式,使开发者能更容易地创建业务逻辑组件。例如,`@Stateless`、`@Stateful`和`@MessageDriven`注解分别用于无状态会话bean、...

    java学习笔记

    15. **Java EE(企业版)**:如果进一步深入,你可以学习Java EE,它提供了Web应用开发所需的组件和服务,如Servlet、JSP、EJB等。 在“Java学习笔记”这个资源中,你可能会找到关于这些主题的详细解释、实例代码和...

    java面试题-读书笔记-面试失败一次就记录一次的坑-不知不觉已经这么多了.docx

    而JBoss是一个应用服务器,支持EJB等企业级服务。 - **服务范围**:Apache擅长处理HTML、CSS、JavaScript等静态资源,Tomcat则擅长处理动态内容,而JBoss提供更全面的服务,包括事务管理、安全性和JMS等。 5. **...

    j2ee开发全程的实录

    J2EE平台包括一系列服务器端组件,如Servlets、JSP(JavaServer Pages)、EJB(Enterprise JavaBeans)、JMS(Java Message Service)以及JPA(Java Persistence API)等。这些组件协同工作,为开发者提供了构建可...

    j2ee精华学习笔记

    **J2EE精华学习笔记** J2EE,全称为Java 2 Platform, Enterprise Edition,是Java平台上用于构建企业级分布式应用程序的框架。本学习笔记旨在深入解析J2EE的核心概念和技术,帮助读者全面掌握J2EE开发的关键知识。 ...

    韩顺平html css js笔记.doc

    Java EE(Java Enterprise Edition)是一种用于开发企业级应用程序的平台,提供了许多高级功能,如 servlet、JSP、EJB 等。Java EE 可以用来开发大型企业级应用程序,具有高可扩展性和高可维护性。 Java SE 介绍 ...

    javaEE培训教案(国内某一IT培训机构2个月的培训内容)

    6. **EJB(Enterprise JavaBeans)**:虽然现代开发中轻量级框架更常见,但EJB仍被视为JavaEE的一部分,尤其是会涉及Session Bean和Message-driven Bean的概念。 7. **JPA(Java Persistence API)与Hibernate**:...

Global site tag (gtag.js) - Google Analytics