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接口或组件接口
?
a)???对于无状态会话bean,只能有一个create,而且它必须没有任何参数
b)???有状态会话bean可以有多个重载的create方法,而且不一定非要有一个无参数的create
c)????有状态bean中创建方法的名字必须以create开头
a) 参数和返回类型必须是RMI-IIOP兼容(即可序列化)
b)?可以有重载方法
c)?每个方法都必须声明一个RemoteException异常
d)可以声明自己的应用异常,但是这些异常不能是运行时异常
如果两个引用来自同一个home,即使这两个桩引用了两个不同的远程EJB对象,isIdentical也返回true
有状态会话bean只要是两个不同的桩,这个方法肯定返回false
实体bean如果两个桩引用了有相同主键的两个实体,这个方法就返true
远程客户视图本地客户视图EJBHome
Object getPrimaryKey()
EJBLocalHome getEJBLocalHome()
Handle getHandle()
Void remove()
Boolean isIdentical(EJBObject o)
?
?
?