客户共享
Home
,但是不会共享
bean
每个客户都要得到自己的
EJBObject
引用和
bean
客户共享
Home
,而且可能共享
bean
如果两个客户想要访问同一个
Customer
(
Fred Smith #420
),那么这两个客户都会有同一个
EJBObject
的引用。
得到
Home
桩后,客户在
Home
上调用
create
(创建方法),
Home
则创建
bean
,而且会为
bean
创建
EJBObject
,并返回
EJBObject
桩
得到一个
Home
桩后,客户在
Home
上调用
create
,
Home
为客户提供一个现有
EJBObject
的桩,但是没有为这个
EJBObject
关联
bean
,
bean
一直待在池中,知道客户使用
EJBObject
桩真正调用一个业务方法时,
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)
如果两个引用来自同一个
home
,即使这两个桩引用了两个不同的远程
EJB
对象,
isIdentical
也返回
true
只要是两个不同的桩,这个方法肯定返回
false
如果两个桩引用了有相同主键的两个实体,这个方法就返
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)
|
|
分享到:
相关推荐
POJO的主要特点在于它的无特定规范性,它不遵循像EJB(Enterprise JavaBeans)这样的企业级框架标准,也不包含任何特定的框架接口或实现,如持久化、事务管理等。POJOs通常用于表示数据模型,它们可以作为DTO(Data ...
该资源分为三部分,分别是Java高手真经(高级编程卷):Java Web高级开发技术读书笔记模板、Java Web企业级开发技术EJB和Java Web高级开发技术 frameworks与开源技术。 Java高手真经(高级编程卷):Java Web高级...
《Java完美经典》读书笔记是Java开发者不可或缺的学习资源,它涵盖了Java编程的各个方面,旨在帮助读者深入理解Java语言,提升编程技巧。以下是对该书笔记的一些核心知识点的详细阐述: 1. **Java基础** - **变量...
《信息系统项目管理师考试全程指导》读书笔记涵盖了信息系统的基础知识,包括信息系统的定义、功能、类型和发展,以及信息系统建设的复杂性、生命周期和原则。在信息系统的生命周期中,包括系统规划、分析、设计、...
11. **Java EE(企业版)**:如果笔记涉及到此部分,可能会讲解Servlet、JSP、EJB等用于构建Web应用的技术。 12. **JVM(Java虚拟机)**:了解JVM的工作原理,如类加载、内存管理、垃圾回收等,对于优化Java程序...
《信息系统项目策划管理师考试全程指导》的读书笔记涵盖了信息系统的基础知识、系统开发基础等多个方面。以下是这些知识点的详细解析: 1. **信息系统基础** - **信息的定义**:信息是系统有序程度的度量,香农将...
《信息系统项目管理师考试全程指导》读书笔记涵盖了信息系统的基础知识,项目管理的各个方面以及系统开发的基础要点。以下是对这些知识点的详细阐述: 1. **信息系统基础**: - **信息的定义**:信息被定义为系统...
3. **EJB 3.0**:EJB3是J2EE5中的重大更新,它简化了EJB的创建和管理,通过注解和接口方式,使开发者能更容易地创建业务逻辑组件。例如,`@Stateless`、`@Stateful`和`@MessageDriven`注解分别用于无状态会话bean、...
15. **Java EE(企业版)**:如果进一步深入,你可以学习Java EE,它提供了Web应用开发所需的组件和服务,如Servlet、JSP、EJB等。 在“Java学习笔记”这个资源中,你可能会找到关于这些主题的详细解释、实例代码和...
而JBoss是一个应用服务器,支持EJB等企业级服务。 - **服务范围**:Apache擅长处理HTML、CSS、JavaScript等静态资源,Tomcat则擅长处理动态内容,而JBoss提供更全面的服务,包括事务管理、安全性和JMS等。 5. **...
J2EE平台包括一系列服务器端组件,如Servlets、JSP(JavaServer Pages)、EJB(Enterprise JavaBeans)、JMS(Java Message Service)以及JPA(Java Persistence API)等。这些组件协同工作,为开发者提供了构建可...
**J2EE精华学习笔记** J2EE,全称为Java 2 Platform, Enterprise Edition,是Java平台上用于构建企业级分布式应用程序的框架。本学习笔记旨在深入解析J2EE的核心概念和技术,帮助读者全面掌握J2EE开发的关键知识。 ...
Java EE(Java Enterprise Edition)是一种用于开发企业级应用程序的平台,提供了许多高级功能,如 servlet、JSP、EJB 等。Java EE 可以用来开发大型企业级应用程序,具有高可扩展性和高可维护性。 Java SE 介绍 ...
6. **EJB(Enterprise JavaBeans)**:虽然现代开发中轻量级框架更常见,但EJB仍被视为JavaEE的一部分,尤其是会涉及Session Bean和Message-driven Bean的概念。 7. **JPA(Java Persistence API)与Hibernate**:...