EJB读书笔记(一)


EJB 五个步骤

  1. Bean
  2. 接口
  3. Xml 部署描述文件
  4. Ejb-jar
  5. 部署


 

组件接口里面声明所有业务方法

客户使用 home 接口来请求组件接口的一个引用

 

组件接口必须扩展 EJBObject

Bean 必须实现 sessionBean 接口,但 bean 不能实现组件接口

 

部署描述文件描述的是 bean 的结构,包括三个文件(组件接口、 home 接口和 bean 类)相互之间如何关联

部署描述文件的名字必须是“ ejb-jar.xml ”,而且必须放在一个名为“ META-INF ”的目录下



EJB体系结构

如果你是一个对象,而且你有另一个对象的引用,那个对象就必须和你在同一个堆中。

JAVA RMI (远程方法调用)为客户提供一个代理对象,即桩( sub, 这个代理对象相当于客户和远程对象之间的中间人,客户在桩上调用方法,桩则负责完成与远程对象的底层通信( socket 和流)

利用 RMI ,客户对象会表现得好像在做一个远程方法调用。但实际上,它只是在一个“代理”对象上调用方法,这个代理对象在客户所在的同一个堆中运行。这个代理称为“桩”,它会处理所有底层的网络 socket 和流。

服务器端有这么一个“东西“(骨架 skeleton ),桩知道怎么和它通信,另外它也知道怎么解释来自桩的消息,并在远程对象上调用一个方法

 

不需要自己建立桩和骨架。对于普通的 RMI ,使用 RMI 编译器就可以生成桩和骨架。

远程对象和桩都实现相同的接口(远程接口),这个接口包括了客户想调用的方法。远程接口必须扩展 java.rmi.Remote 。而且每个方法都必须声明一个 RemoteException

 

EJB 中,远程对象不是 bean ,它是 bean 的保镖 —EJBObject

远程对象和桩都实现了同一个接口,即业务接口(也称为组件接口),不过没有实际的业务逻辑行为

Bean 类没有实现业务接口,不过 bean 才有真正的业务逻辑功能

RMI 接口和远程组件接口之间的主要区别在于,在 EJB 中,远程组件接口扩展的是 javax.ejb.EJBObject 而不是 java.rmi.RemoteEJBObject 接口扩展了 Remote ,所以 EJBObject 是一个远程接口。通过组件接口将业务方法展现给客户。

 

谁来创建 EJBObject 类?

由容器来建,你来声明方法,由容器实现你的组件接口。

 

我们创建:组件接口, bean 类, home 接口

容器创建: EJBObject 类, EJBObject 桩类, Home 类, Home 桩类

 

EJBObject 类提 bean 类完成安全、事务等事项,而桩就像上面说的来负责完成与远程对象的底层通信

 

每个会话 bean 和实体 bean 都有一个 Home ,消息驱动 bean 没有 homeHome 的任务就是分发该 bean 组件接口的引用。


客户远程方法调用流程(假设AdviceBean是个sessionBean):

1.  AdviceBean 得到部署,服务器实例化一个 AdviceBean Home 对象,并向 JNDI 注册该 Home 对象  

2.  客户对 Home 完成一个 JNDI 查找,这里使用前面注册的名字“ Advisor

3.  JNDI 发回远程 Home 对象的一个桩  

4.  客户通过调用 create ()向 Home 请求组件接口的一个引用。(客户想“创建“一个 bean ,并得到该 bean EJBObject 的一个桩)

5.  现在“服务“介入, bean 得到创建  

6.  建立 EJBObject ,它的桩返回给客户  

7.  客户在 bean 上调用一个业务方法  

8.  客户不想访问该类的更多 bean 时,可以删除他的 home 桩,不过即使删除了 Home 桩,仍然可以继续调用组件接口上的方法。  

 

 

weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值