- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
EJB
背景:
复用粒度方面
OO复用单位是类;
组件如:EJB,复用单位:更大模块。
可移植性方面
Java:writeoncerunanywhere(WORA)
EJB:writeoncedeployanywhere(WODA)
目的:摆脱开发商。过去,每个开发商有自己的API。
与J2EE关系
J2EE和EJB都是服务器规范,后者是前者的一个子集。
EJB组件无法在EJB容器之外存活,它无main方法,大多数方法由容器调用。
工作过程概述:
客户对象――》业务接口――》EJB对象――》服务――》企业Bean--DB
每次客户向bean发出调用时,服务器就会介入到客户和bean之间,插入一些服务,如:安全、事务、持久存储等。
DB表众多同类对象的数据(状态)永久性集中存储。
分类:
实体bean持久存储库中的一个事务,表中一行,若干表数据行中提取的信息。代表系统中的实体(对象)。
消息驱动bean监听JMS服务的消息,客户不直接调用,客户向消息服务发消息。
会话bean表示一个过程,描述一个动作或动作序列。有状态的可以记住调用前的会话状态,无状态的则无记载。会话状态是客户特定的状态,例如:购物车,只要“购物”这个会话还存活,这个状态就应该保留。(功能)
附1:按照一般OO方法编写可复用的类,让bean的实现调用这些类的方法。
附2:无状态会话bean可以有状态,即:有自己的实例变量,只不过不是客户特定的状态。
组件组件实例一个组件可以有多个实例
实例产品(大粒度)
工厂(小粒度)
EJB组件Client负责领域相关的功能
EJB容器Server(中间件)负责领域无关的功能
构造Bean需要的工作概述:(只考虑远程客户程序的情况下,在顶层结构上……)
编写提供业务方法的类:bean类
需要确定bean的种类,实现对应的接口。
编写两个接口(多数情况下):home接口(工厂接口、类厂接口)和组件业务接口(远程接口)
创建一个XML部署描述文件,用来告诉服务器如何管理。名字必须为:ejb-jar.xml.
把bean、接口和部署描述文件放到一个ejb-jar文件中,该文件中可能不只一个bean,但部署描述文件只有一个。
用服务器开发商提供的工具把bean部署到服务器上。
例如:
Step1bean类如下:
packagecbt;
importjavax.ejb.*;
publicclassAdviceBeanimplementsSessionBean{
private string[]adviceStrings={“”,…,“”};
publicvoidejbActivate(){}
publicvoidejbPassivate(){}
publicvoidejbRemove(){}
publicvoidsetSessionContext(SessionContextctx){}
//以上4个来自SessionBean接口。
publicstringgetAdvice(){
intr=(int)(Math.random()*adviceStrings.length);
returnadviceStrings[r];
}
publicvoidejbCreate(){}//必须有,EJB原则
}
Step2两个接口如下:
1.组件接口(远程接口)
packagecbt;
importjavax.ejb.*;
importjava.rmi.RemoteException;
publicinterfaceAdviceextendsEJBObject{
publicstringgetAdvice()throwsRemoteException;
}
//或扩展EJBLocalObject
2.Home接口//bean的引用工厂,制造并向客户分配
packagecbt;
importjavax.ejb;
importjava.rmi.RemoteException;
publicinterfaceAdviceHomeextendsEJBHome{
publicAdvicecreate()throwsRemoteException,
CreateExcption;
}
//必须返回组件接口类型;
//会话和实体Bean有,消息驱动Bean没有(无客户View)
//或扩展EJBLocalHome
先开发bean类,还是先定义组件接口,无要求。
Bean类并不是
您可能关注的文档
最近下载
- 住宅小区视频监控系统方案设计.ppt
- 药食同源及药膳配方食品通用要求.pdf VIP
- 淮阴工学院2021-2022学年第1学期《高等数学(上)》期末考试试卷(B卷)及标准答案.pdf
- 内审员内审程序和注意事项要点分析.ppt
- 2020-2021学年陕西省西安市经开区五年级(上)期末数学试卷.docx VIP
- 电厂锅炉原理及设备知识点.pdf VIP
- 新疆大学《大学语文》2020-2021学年第一学期期末考试试卷.pdf VIP
- 山东省滨州市滨城区2023-2024学年七年级上学期期末考试地理试卷(含答案).pdf VIP
- 影子(课件)综合实践活动二年级上册.pptx
- 经济法简答题及论述题.doc
网络工程师持证人
本人已从事浙江省工程咨询5年,对浙江省内工程信息非常熟悉,可获取新建工程相关联系人、设计院、业主等关键信息。另外从事楼宇自控专业已10年,考取了一建二建等资格证书,有关考试方面的问题(考试心得、方法、学习资料等)都欢饮来咨询交流。
文档评论(0)