主讲人王廷蔚

上传人:cn****1 文档编号:567937319 上传时间:2024-07-22 格式:PPT 页数:54 大小:481KB
返回 下载 相关 举报
主讲人王廷蔚_第1页
第1页 / 共54页
主讲人王廷蔚_第2页
第2页 / 共54页
主讲人王廷蔚_第3页
第3页 / 共54页
主讲人王廷蔚_第4页
第4页 / 共54页
主讲人王廷蔚_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《主讲人王廷蔚》由会员分享,可在线阅读,更多相关《主讲人王廷蔚(54页珍藏版)》请在金锄头文库上搜索。

1、行葡六吕香摘秋幅渐叶佛团梭凶捂择锻猴柑蹬滑爹彤赁膝丧迫忘习现刁匹主讲人王廷蔚天峰电子培训主主主主讲讲讲讲人:王廷蔚人:王廷蔚人:王廷蔚人:王廷蔚EJB熄斋屏腕蕴乍剃烧涟箱丑荤图堡收呵譬掇缚呈奸但棉湖姆蝶仇嘱媳竞烩嘎主讲人王廷蔚天峰电子培训J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训EJB是是J2EE规约中最重要的部分。规约中最重要的部分。EJB提供了提供了让客户端使用远程分布式对象的框架,极大地让客户端使用远程分布式对象的框架,极大地简化了具有良好的可扩充性的企业级应用的开简化了具有良好的可扩充性的企业级应用的开发。发。 EJB规约规定了规约规定了EJB构件(指符合构件(指

2、符合EJB规约的构规约的构件)如何与件)如何与EJB容器(容器(container)进行交互,进行交互,而而EJB 容器则提供诸如目录服务、事务管理、容器则提供诸如目录服务、事务管理、安全、连接池管理、容错等服务。安全、连接池管理、容错等服务。 赣内升将沉谰捅酣饱纳良笺捣窑朱帝脐扎递居英渔赁钝曰垢烽怎胳闷稻逗主讲人王廷蔚天峰电子培训2 2J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训EJB的概念的概念 EJB不不是是一一种种产产品品,而而是是为为开开发发和和使使用用基基于于事事务务和和分分布布对对象象应应用用的的服服务务器器端端构构件件而而定定义义的的一一种种技技术术规约。规

3、约。(1)符合符合EJB规约的构件是一组分布式的对象,它规约的构件是一组分布式的对象,它们通过所谓们通过所谓EJB容器的控制,为分布式用户提供远程容器的控制,为分布式用户提供远程服务。服务。EJB规约保证了规约保证了EJB构件的可复用性。构件的可复用性。(2)EJB规规约约定定义义了了EJB构构件件与与EJB容容器器之之间间的的交交互互机机制制,描描述述了了EJB构构件件和和EJB容容器器在在运运行行时时的的行行为为,保证了保证了EJB构件在容器间的易移植性。构件在容器间的易移植性。(3) EJB规约定义了规约定义了EJB容器和容器和EJB服务器的标准模型,服务器的标准模型,各软件厂商可开发实

4、现该模型的各种各软件厂商可开发实现该模型的各种EJB服务器产品。服务器产品。 戈忘嚎张她湃雷何扯掂启岭摇屠尔雷亿胚猿矩今瞥瓜密拧减肺叹晋垂勤逛主讲人王廷蔚天峰电子培训3 3J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训EJB目标目标 EJB的的目目标标是是为为服服务务器器端端构构件件系系统统定定义义一一个个技技术规范。术规范。该规范能提供一个标准的、分布的、基于该规范能提供一个标准的、分布的、基于OO的体系结构的体系结构能屏蔽复杂的系统级功能需求能屏蔽复杂的系统级功能需求能兼容能兼容CORBA标准标准,有与非有与非 Java 应用之间的应用之间的互操作能力互操作能力 曲旗必囚

5、佑戒礁泼墨席尚棵远晋畅板瑞然蔗曲郎拜叠专挎瓮学厂瞥造痕详主讲人王廷蔚天峰电子培训4 4J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训 EJB的特点的特点 (1)清晰的体系结构清晰的体系结构支持多层应用体系结构和基于构件开发。支持多层应用体系结构和基于构件开发。(2)简化的编程模型简化的编程模型EJB构构件件的的开开发发者者只只需需关关注注业业务务服服务务实实现现,一一些些复复杂杂的的任任务务如如生生命命周周期期管管理理、持持久久性性、事事务务处处理理、安安全全、一致性及资源管理等等都是由一致性及资源管理等等都是由EJB容器负责。容器负责。(3)通用的编程模型通用的编程模型提供

6、各种服务的高层提供各种服务的高层API,Java是其编程语言。是其编程语言。(4)易移植性易移植性可以部署到任何兼容的可以部署到任何兼容的EJB容器中。容器中。(5)支持事务处理支持事务处理可以通过在代码外的描述来定义事务处理。可以通过在代码外的描述来定义事务处理。炮澄珊令娘痛苗铬焊屏揭诱卧替详遂煞从韵卢鉴筑津琼帧啤菜隆逃台赔卞主讲人王廷蔚天峰电子培训5 5J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训(6)可扩展性可扩展性可可以以根根据据应应用用的的增增长长而而扩扩展展,EJB服服务务器器往往往往还提供了负载平衡。还提供了负载平衡。(7)安全性安全性由由EJB服务器提供资源

7、的访问权限控制。服务器提供资源的访问权限控制。跌聘舍卒仙鼻契铬主侮贯筒溪忻蚊勤佣仪涣都办杠沥令碱弟蘸乃放掠役浊主讲人王廷蔚天峰电子培训6 6J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训EJB体系结构体系结构 仪爬表融屯仙锚捂漱产郭粟糖铬榆聊嘘息墨闲秆犹猫蜘射域皮扶枉熔茹瞳主讲人王廷蔚天峰电子培训7 7J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训EJB体系结构体系结构 EEJB服务器服务器EJB服务器的主要功能服务器的主要功能:(1)管理管理EJB容器容器(EJB容器则管理容器则管理Bean)(2)提供对操作系统服务的存取提供对操作系统服务的存取(3)提供

8、提供Java相关的服务,特别是相关的服务,特别是(A)通过通过JNDI访问命名空间访问命名空间 (B) 基于基于 OTS 的事务处理服务的事务处理服务 逼肉兼褂冈湾驳摧莲喊沃嘘球回谋有详俩潞昔昧盛凰已消废林就秋刺螺堡主讲人王廷蔚天峰电子培训8 8J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训EJB容器容器EJB构构件件并并不不在在EJB服服务务器器的的顶顶部部直直接接执执行行。一一个个称称为为EJB容容器器的的中中间间件件在在EJB服服务务器器环环境境中中运运行行,EJB容容器器为为EJB构构件件提提供供操操作作环环境境。主主要要来来说说,EJB容器管理了以下的系统级问题:容

9、器管理了以下的系统级问题:(1)持久性(持久性(Persistence):):容器决定何时载入储存状态,又可分为容器决定何时载入储存状态,又可分为CMP(Container-ManagedPersistence)和和BMP(Bean-ManagedPersistence)。(2)生命周期管理(生命周期管理(LifeCycleManagement):):容器管理容器管理EJB构件的实例,使构件的实例,使EJB构件实现最大的效构件实现最大的效能和内存利用率。容器能够激活和钝化能和内存利用率。容器能够激活和钝化EJB构件、管构件、管理实例池等等。理实例池等等。安全性(安全性(Security):):

10、史趾希繁侥饲噪卯拌嫌着驳龙能毒溜稼茎秘烷稀掸御齐禁骡蚁狈峰扬脑埃主讲人王廷蔚天峰电子培训9 9J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训(3)事务管理(事务管理(TransactionManagement):):容器负责管理分布式事务处理的复杂问题。容器负责管理分布式事务处理的复杂问题。 部署描述文件定义了客户能够访问的不同的应部署描述文件定义了客户能够访问的不同的应用函数。容器只允许授权的客户访问这些受保用函数。容器只允许授权的客户访问这些受保护的函数。护的函数。远程连接(远程连接(RemoteConnectivity):):容器为远程连接,管理底层的通信问题,而且容器

11、为远程连接,管理底层的通信问题,而且对对EJB构件的开发者和客户都隐蔽了通信问题。构件的开发者和客户都隐蔽了通信问题。 震醇朗扇雹威糊轿裤淮义组片议汪焊撰搐压决激曙庭撞柯领红兜医探企十主讲人王廷蔚天峰电子培训1010J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训EJB客户端客户端EJB客户端是指请求客户端是指请求EJB构件服务的应用程序。构件服务的应用程序。EJB规约为创建规约为创建EJB构件的客户接口定义了一套标准。这构件的客户接口定义了一套标准。这套标准主要包括:套标准主要包括:(1)EJBHome接口:接口:EJB Home接接口口为为客客户户机机创创建建、删删除除、查

12、查找找EJBRemote接接口口对对象象的的句句柄柄提提供供了了相相应应的的操操作作。EJB客客户机使用户机使用JNDI来查找对来查找对EJBHome接口的引用。接口的引用。(2)EJBRemote接口:接口:EJB客客户户机机通通过过EJBRemote接接口口调调用用EJB构构件件的的业业务务方法。方法。蜗爱医虱侥宇伯惨掂九滤妆挣芬脓缴疽掣别僵私麦月躲钩遏募私念符船枪主讲人王廷蔚天峰电子培训1111J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训EJB的组成的组成 EJB并不是一个单独的文件,它由一些类、接口、描并不是一个单独的文件,它由一些类、接口、描述文件和其他一些资源文

13、件组成。述文件和其他一些资源文件组成。1)EJB类类Bean的第一部分是实现基本方法的类,这个类封的第一部分是实现基本方法的类,这个类封装了需要实现的商务逻辑。这个类需要遵循一些规装了需要实现的商务逻辑。这个类需要遵循一些规范,并要与一些严格定义的接口保持一致。不同类范,并要与一些严格定义的接口保持一致。不同类型的型的Bean的要求也不一样。对于会话的要求也不一样。对于会话Bean,这个类这个类主要包含一些商务逻辑;对于实体主要包含一些商务逻辑;对于实体Bean则主要包含则主要包含一些数据逻辑;而对于消息驱动一些数据逻辑;而对于消息驱动Bean,则主要包含则主要包含一些消息处理逻辑。一些消息处

14、理逻辑。 碧掠岔媒胶睡撰贺屯涣运鸳殃偷赡子檀阉榆缮恬贫扔寂期皋迅截排思补墅主讲人王廷蔚天峰电子培训1212J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训2)EJB对象对象EJB对对象象运运行行在在EJB容容器器中中,EJB容容器器通通过过Bean提提供供的的方方法法来来管管理理Bean。当当客客户户端端需需要要调调用用EJB时时,并并不不直直接接与与Bean类类提提供供的的方方法法打打交交道道,客客户户端端的的调调用用被被EJB容容器器截截获获,而而EJB对对象象则则充充当当了了Bean类类实实例例的的代代理理。EJB对对象象是是根根据据Bean类类、某某些些接接口口和和某某

15、些些描描述述文文件件,并并通通过过专专门门的的工工具具来来生生成成的的,它它负负责责和和一一些些中中间间层层API打打交交道道。EJB容容器器是是客客户户端端和和Bean类类之之间间的的中中间间层层,这这个个中中间间层层负负责责管管理理一一个个能能处处理理底底层层网络通信的对象,这个对象就是网络通信的对象,这个对象就是EJB对象。对象。EJB对象复制了对象复制了Bean类的商业方法,并代表类的商业方法,并代表Bean类类来响应客户端的调用。来响应客户端的调用。EJB对象在物理上是对象在物理上是EJB容器容器的一部分。的一部分。 极陵豁霜羊搔俞陆侣胜悼吞腋匝章舅肛瘴秤寸袁腰燃损耘雁熔悬奎预硬锻主

16、讲人王廷蔚天峰电子培训1313J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训3)Remote接口接口Bean的的客客户户端端直直接接与与EJB对对象象打打交交道道,而而不不是是直直接接调调用用Bean类类的的方方法法,所所以以EJB对对象象必必须须复复制制 Bean类类 提提 供供 的的 每每 一一 个个 方方 法法 , RemoteInterface告告诉诉EJB对对象象自自动动生生成成工工具具需需要要复复制制Bean类的哪些方法。类的哪些方法。实现实现Remote接口的对象是接口的对象是EJB对象对象(javax.ejb.EJBObject),EJB对象首先要实现对象首先

17、要实现EJBObject接口中定义的方法,然后还需要实接口中定义的方法,然后还需要实现用户定义的现用户定义的Remote接口中的方法。接口中的方法。 谋揖锡各忽矗瞄阎僻窃妮易晰船颧义致滤僚厨扶箩碾泌德妙勤振蓟澎萤疾主讲人王廷蔚天峰电子培训1414J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训4)Local接口接口有有的的时时候候Bean的的调调用用并并不不没没有有经经过过网网络络,比比如如在在同同一一个个容容器器中中不不 同同 Bean之之 间间 的的 调调 用用 , 则则 不不 需需 要要 经经 过过stubskeletonEJBObject中中间间层层APIBean实实例

18、例返返回回的的过过程程,用用户户可可以以使使用用Local对对象象来来调调用用Bean实实例例。Local接接口是从口是从javax.ejb.EJBLocalObject继承的。继承的。5)Home对象和对象和Home接口接口Home对对象象的的主主要要功功能能是是:创创建建、查查找找、删删除除EJB对对象象。Home对对象象在在物物理理上上是是EJB容容器器的的一一部部分分,由由专专门门的的工工具具自自动动生生成成的。的。Home接口提供了容器自动生成接口提供了容器自动生成Home对象所需要的信息。从对象所需要的信息。从而使而使Home对象能提供给对象能提供给EJB对象的初始化方法对象的初始

19、化方法。 才伯寄蛋粥沮钒滁孟追牵盗磊弹鸭暴群色汤艰缚姻估石分寄触龋瑰外裹坚主讲人王廷蔚天峰电子培训1515J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训(3)RMI/IIOP或或RMI/JRMP协议:协议:RMI/IIOP或或RMI/JRMP是是EJB客户机与客户机与EJB服务器进行通信的标准协议,这些底层的分布服务器进行通信的标准协议,这些底层的分布式通信机制对于式通信机制对于EJB客户机和客户机和EJB构件开发者构件开发者都是透明的。都是透明的。 群镑披寒返惫贩厂正趾诌滓寿引融母庄稽界榷疾孵傲尧蛇凸哎铁皇锅春胖主讲人王廷蔚天峰电子培训1616J2EEJ2EE快速进阶培训快

20、速进阶培训快速进阶培训快速进阶培训EJB的分类的分类EJB2.0定义了定义了3种类型的种类型的Bean。(1) 会话会话(Session)Bean会会话话Bean用用于于描描述述商商业业处处理理过过程程,会会话话Bean可可以以作作为其他为其他Bean的客户端,调用其他的客户端,调用其他Bean的方法。的方法。(2) 实体实体(Entity)Bean实实体体Bean用用于于描描述述数数据据,它它是是数数据据信信息息的的Java缓缓冲冲对对象象。实实体体Bean提提供供了了持持久久数数据据的的操操作作与与表表示示。可可以以同同时时与与多多个个客客户户机机进进行行交交互互,系系统统结结束束时时其其

21、运运行行状态仍能保留。状态仍能保留。(3) 消息驱动消息驱动(Message-driven)Bean消消息息驱驱动动Bean集集成成了了Java消消息息服服务务(JMS)和和企企业业Bean的的功功能能。不不能能由由客客户户端端直直接接获获得得其其引引用用而而调调用用其方法,只能由系统消息来启动。其方法,只能由系统消息来启动。岁骸宅统惧株猫趴务靳夜郭吕唆拟丹哨付拆惭照蛹厨玫憎陡再躺趴欺榴肃主讲人王廷蔚天峰电子培训1717J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训开发一个开发一个EJB组件,必须创建以下四个文件:组件,必须创建以下四个文件:(1)EJBHome接口接口EJB

22、Home接接口口定定义义了了一一些些方方法法供供EJB客客户户端端创创建建和和查找查找EJB对象。对象。(2)EJBRemote接口接口EJBRemote接接口口定定义义了了EJB的的业业务务方方法法,EJB所所有有的的业业务务方方法法必必须须在在Remote接接口口定定义义才才能能够够被被客客户户端端访问。访问。(3)EJB类类EJB类实现类实现了了EJBRemote接口中定义的业务方法。接口中定义的业务方法。(4)Ejb-jar.xmlEjb-jar.xml包含了该包含了该EJB组件的配置信息。组件的配置信息。 区凋泳忽巷熬均乙姨渍捏搐蚤绥皇钵业税馅截屎篓瞧糙拢锡要朵蝎知尚壤主讲人王廷蔚天

23、峰电子培训1818J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训EJB开发步骤开发步骤(1)声明远程接口声明远程接口(2)声明本地接口声明本地接口(3)实现实现Bean类类(4)部署部署J2EE应用应用(5)客户端编程客户端编程(6)编译及运行编译及运行 嚣怜光头蹬愿溃列抬还栓歌昌洁识织尸嫁瞩鹃灰彝扶缄仕空嘎殊歪彻晶酋主讲人王廷蔚天峰电子培训1919J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训企业企业Bean的优点的优点首先首先EJB容器给企业容器给企业Bean提供了系统级服务,使提供了系统级服务,使Bean开发者可以专注于商务问题的解决。开发者可以专注于

24、商务问题的解决。 其次因为企业其次因为企业Bean而不是客户端实现商务逻辑,客而不是客户端实现商务逻辑,客户端开发者就可以致力于客户端表述的开发,而不户端开发者就可以致力于客户端表述的开发,而不必为实现商务规则或者数据库访问的日常处理而编必为实现商务规则或者数据库访问的日常处理而编码了。码了。 最后,因为企业最后,因为企业Bean是可移植的,应用程序组装者是可移植的,应用程序组装者可以用现有的企业可以用现有的企业Bean建立新的应用程序。这些应建立新的应用程序。这些应用程序可以在任何兼容的用程序可以在任何兼容的J2EE服务器上运行。服务器上运行。灵羌剃旗萄职稿钳苏按哑占纶院歇赖整鼻饥搀迂砚肯谩

25、代请材玻呀蝎一摆主讲人王廷蔚天峰电子培训2020J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训何时需要使用企业何时需要使用企业Bean你的应用程序需要不断的升级。为了适应不断增长你的应用程序需要不断的升级。为了适应不断增长的用户,你可能需要将你的应用程序组件分布在多的用户,你可能需要将你的应用程序组件分布在多台不同的机器上运行。虽然并不仅仅是企业台不同的机器上运行。虽然并不仅仅是企业Bean可可以在不同的机器上运行,但企业以在不同的机器上运行,但企业Bean的运行位置对的运行位置对于客户端始终是透明的。于客户端始终是透明的。需要用事务机制来保证数据完整性。企业需要用事务机制来

26、保证数据完整性。企业Bean支持支持事务机制以提供对共享资源并发访问的管理。事务机制以提供对共享资源并发访问的管理。应用程序需要支持众多不同类型的客户端。只需要应用程序需要支持众多不同类型的客户端。只需要极少的几行代码,远程客户端就可以很容易的访问极少的几行代码,远程客户端就可以很容易的访问到企业到企业Bean。这些客户都可以很。这些客户都可以很“瘦瘦”并且在理论上并且在理论上可以是任意数量不同类型的客户端。可以是任意数量不同类型的客户端。企业企业Bean的分类的分类磋父税堰矛挤品渣钓恶嫩抵寓恰符佰欠芹旱进戴机岔仑筐柞串澄绒具丘掠主讲人王廷蔚天峰电子培训2121J2EEJ2EE快速进阶培训快速

27、进阶培训快速进阶培训快速进阶培训会话会话Bean 会话会话Bean表现连接到表现连接到J2EE服务器的一个单独的服务器的一个单独的客户端。客户端通过调用会话客户端。客户端通过调用会话Bean的方法来访的方法来访问部署在服务器上的应用程序。会话问部署在服务器上的应用程序。会话Bean完成完成客户端的请求,从而对客户端隐藏了服务器内客户端的请求,从而对客户端隐藏了服务器内复杂商务逻辑的执行过程。复杂商务逻辑的执行过程。状态管理模式状态管理模式: 有状态会话有状态会话Bean 无状态会话无状态会话Bean 粹示苫琐欠呜汲末毗攘拽乃但摆疫竟凌衙动肢锭抉肯肚豆醋弓疲烦兑酣兵主讲人王廷蔚天峰电子培训222

28、2J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训有状态会话Bean 一个对象的状态由它的成员变量(数据成员)一个对象的状态由它的成员变量(数据成员)的状态决定。有状态会话的状态决定。有状态会话Bean的成员变量描述的成员变量描述一个唯一的客户端一个唯一的客户端-会话会话Bean的关联状态。因的关联状态。因为客户端要与对应的会话为客户端要与对应的会话Bean进行对话,所以进行对话,所以这种状态通常被叫做会话状态。这种状态通常被叫做会话状态。 酉嫡井耘毙拂剔厕众纶砰笨疙符浊学鄙尊举并藉佩哲家狄妻壬揩骂接助磊主讲人王廷蔚天峰电子培训2323J2EEJ2EE快速进阶培训快速进阶培训快

29、速进阶培训快速进阶培训无状态会话Bean 无状态会话无状态会话Bean并不为客户端保留会话状态。并不为客户端保留会话状态。在客户端调用无状态会话在客户端调用无状态会话Bean的方法时,对应的方法时,对应会话会话Bean的数据成员会描述这个调用状态,但的数据成员会描述这个调用状态,但仅仅只在该方法调用期间保持这个状态。当方仅仅只在该方法调用期间保持这个状态。当方法调用结束,状态就被清除。除了在方法调用法调用结束,状态就被清除。除了在方法调用期间,所有同一个无状态会话期间,所有同一个无状态会话Bean实例是等价实例是等价的,可以被容器分配给任一客户端。的,可以被容器分配给任一客户端。 尸踊税幻扑红

30、菇孔眠烟也沦瘪烈貉财进岔庭妖赋窗敦盈灵被碟屯驶诡涕搐主讲人王廷蔚天峰电子培训2424J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训有时,有时,EJB容器会在没有请求的时候把有状态容器会在没有请求的时候把有状态会话会话Bean保存在内存(二级存储器保存在内存(二级存储器Second Storage)中。不管什么时候,没有请求时无状)中。不管什么时候,没有请求时无状态会话态会话Bean都不会被保存中。所以,无状态会都不会被保存中。所以,无状态会话话Bean会比有状态会话会比有状态会话Bean有更高的性能。有更高的性能。 框媒怪阉佯惯臣了只澄瞄耗焚短孝核厂谓簇阵肇禄台棵谊咽塑欺仟篡

31、烂伸主讲人王廷蔚天峰电子培训2525J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训何时需要会话何时需要会话Bean 通常,在出现以下几种情况时你需要用会话通常,在出现以下几种情况时你需要用会话Bean: 在任何给定时间,只有一个客户端访问这在任何给定时间,只有一个客户端访问这个个Bean的实例。的实例。 Bean的状态并不需要持久保存,只在一个的状态并不需要持久保存,只在一个时间段(可能是几小时)内保持时间段(可能是几小时)内保持 顷洽怒脚降鹏箭湿鸽龋俄嗡漠獭陆轮辙索妹彦撂惩尺稼立累乌申碍呐懒豫主讲人王廷蔚天峰电子培训2626J2EEJ2EE快速进阶培训快速进阶培训快速进阶培

32、训快速进阶培训何时需要会话何时需要会话Bean在以下情况下,建议采用有状态会话在以下情况下,建议采用有状态会话Bean: Bean需要描述一个于特定客户端的会话状态需要描述一个于特定客户端的会话状态 Bean需要在客户端的多个方法调用之间保存调需要在客户端的多个方法调用之间保存调用信息用信息 Bean作为应用程序的其他组件和客户端的中介作为应用程序的其他组件和客户端的中介者,呈现一个简单化的视图给客户端者,呈现一个简单化的视图给客户端妄辙兼瑞煮倾碳攫雪撬羽侠蚌月沂缉纽太剔坚恐属傍插芜评翁吊汾善迅孜主讲人王廷蔚天峰电子培训2727J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训如

33、果你的应用符合以下特性,为了得到更高的如果你的应用符合以下特性,为了得到更高的性能你应该选择无状态会话性能你应该选择无状态会话Bean: Bean的状态不包含客户端相关的数据的状态不包含客户端相关的数据在一个单一方法调用中,在一个单一方法调用中,Bean已经可以为客户已经可以为客户端完成所需要的工作。例如你可以用无状态会端完成所需要的工作。例如你可以用无状态会话话Bean发一封邮件确认网络订单。发一封邮件确认网络订单。 Bean需要从数据库获取一些客户端经常访问需要从数据库获取一些客户端经常访问的只读数据。你可以用这样的的只读数据。你可以用这样的Bean来访问数据来访问数据表中代表这个月已经卖

34、出的产品的行。表中代表这个月已经卖出的产品的行。切掇乒窗萧部扶缉驯浅狱建皂摘蚌旬钳夹吻缎牌朋李毯颊七孰少法午舰厄主讲人王廷蔚天峰电子培训2828J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训EntityBean 一个一个EntityBean描述一个持久存储的商业对象。描述一个持久存储的商业对象。商业对象的例子如:消费者,订单和产品等。商业对象的例子如:消费者,订单和产品等。在在J2EE SDK中持久存储设备是一个关系型数据中持久存储设备是一个关系型数据库。最典型的情况是一个库。最典型的情况是一个EntityBean又一个在又一个在底层数据库中有一个表相对应,而底层数据库中有一

35、个表相对应,而EntityBean的每一个实例对应表中的一行数据。的每一个实例对应表中的一行数据。 宾危琼既癌晌了拴侈刑颈藐陪尖势兑灌严册氏巩烧诞峰窟枢羔尿傈聂蜜污主讲人王廷蔚天峰电子培训2929J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训EntityBean和会话和会话Bean的不同之处的不同之处持久性持久性 共享访问共享访问 主键主键 关系关系 垣圭炔扒捉沟砒膳咆箕托颊尔唱逢鬃浚嗓尤吹筛缩陆轿将觉借胰厢寝橱复主讲人王廷蔚天峰电子培训3030J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训持久性持久性 因为因为EntityBean的状态保存在存储设备中,所

36、的状态保存在存储设备中,所以它具有持久性。以它具有持久性。持久性是指持久性是指EntityBean的状的状态跨越应用程序和态跨越应用程序和J2EE服务器处理过程的生存服务器处理过程的生存期期 稼研毁毛篓鞠腥绸少围联慧抖勾兴村蓖丘嘛锋确粮滥敲擎毙懂系酱溅炯虎主讲人王廷蔚天峰电子培训3131J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训共享访问共享访问 EntityBean可以被多客户端所共享。由于多个可以被多客户端所共享。由于多个客户端可能同时去修改同一数据,所以在调用客户端可能同时去修改同一数据,所以在调用过程中事务机制非常重要。典型情况下过程中事务机制非常重要。典型情况下E

37、JB容容器都支持事务机制。在这种情况下,可以在器都支持事务机制。在这种情况下,可以在Bean的部署描述符中确定它的事务属性。开发的部署描述符中确定它的事务属性。开发者不必为事务界限编码者不必为事务界限编码容器会自动划分事容器会自动划分事务界限。务界限。 舟吕迅侩浚虏胜戈沈权鳞启搪母卯究涨魂怨睦蕉喘素萍子佬舜抢藏晌彤几主讲人王廷蔚天峰电子培训3232J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训主键主键 每一个每一个EntityBean实例都有一个唯一对象标识。实例都有一个唯一对象标识。例如一个特定的例如一个特定的EntityBean实例可能用一个特实例可能用一个特定的数字来标

38、识。这个唯一标识就是主键,可定的数字来标识。这个唯一标识就是主键,可以让客户端找到对应的以让客户端找到对应的EntityBean实例。实例。 尸构蜕幽胶统纳帆械忽舔涉喧途趣谴责谜郊普衰镀屡熊垦搜悠抨孟岭陶谓主讲人王廷蔚天峰电子培训3333J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训关系关系 象关系数据库中的一个表一样,象关系数据库中的一个表一样,EntityBean之之间也会有关系。例如在一个学校登记系统中,间也会有关系。例如在一个学校登记系统中,表示学生的表示学生的StudentEJB和表示课程的和表示课程的CourseEJB因为学生必须登记上课而产生关系。因为学生必须登

39、记上课而产生关系。 艘贿哲窝殊膏谈簧氮元鲸窖笺仇诣噎获跳疮髓伟冶夫捕浮授赊召搁痉坯术主讲人王廷蔚天峰电子培训3434J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训容器管理的持久性(容器管理的持久性(CMP)容器管理的持久性(容器管理的持久性(CMP)是指)是指EJB容器负责容器负责处理所有的数据库访问。处理所有的数据库访问。EntityBean的代码不的代码不包含任何数据库访问语句(包含任何数据库访问语句(SQL)。所以)。所以Bean的代码不会受到低层存储机制(数据库)的约的代码不会受到低层存储机制(数据库)的约束。由于这样的灵活性,即使把束。由于这样的灵活性,即使把Ent

40、ityBean部部署到使用不同数据库的不同的服务器上,也不署到使用不同数据库的不同的服务器上,也不需要修改代码和重新编译。需要修改代码和重新编译。 血抉牧键蜡讲腐剿绅绅捶幂袁土兴革您建玫腆酸肺肩骏刘肉豁腺儒掌赛尔主讲人王廷蔚天峰电子培训3535J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训抽象数据模式抽象数据模式 持久性字段持久性字段 EntityBean的持久性字段都存储在底层的数据存储设的持久性字段都存储在底层的数据存储设备中。它们共同组成了备中。它们共同组成了Entity Bean的状态。在运行时,的状态。在运行时,EJB容器自动地在数据库和容器自动地在数据库和Enti

41、tyBean之间同步这些状之间同步这些状态。在部署的时候,典型情况容器会把态。在部署的时候,典型情况容器会把EntityBean映映射为数据库中的一张对应表而持久性字段映射为表射为数据库中的一张对应表而持久性字段映射为表的字段(的字段(column列)。列)。 关系关系 一个关系字段就像数据库的一个外键,它识别一个一个关系字段就像数据库的一个外键,它识别一个关联的关联的Bean。 昭撕泄秩佃度薄蒋歪增蜒赔跺妈痪轰亩抨搏贡詹埔誓瀑筷束补慈铸川洗殿主讲人王廷蔚天峰电子培训3636J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训何时需要何时需要EntityBeanBean代表一个商务

42、实体而不是一个过程。例如代表一个商务实体而不是一个过程。例如表示信用卡的表示信用卡的CreditCardEJB要做成要做成EntityBean,而信用卡核实的,而信用卡核实的VerifierEJB就只能做成会话就只能做成会话Bean。Bean的状态是需要持久存储的。如果的状态是需要持久存储的。如果Bean的实的实例例结束了或者结束了或者J2EE服务器关闭,它的状态依然存服务器关闭,它的状态依然存在,只是回到向数据库这样的存储设备睡觉去在,只是回到向数据库这样的存储设备睡觉去了。了。 檬皂抡齿伶诌症标夫鞠柿筛传些桩垮辨钡骆碉刷每凰蔓湛憎演懂限肆威苫主讲人王廷蔚天峰电子培训3737J2EEJ2EE

43、快速进阶培训快速进阶培训快速进阶培训快速进阶培训Message-Driven Bean Message-DrivenBean是一种可以让应用程序异是一种可以让应用程序异部处理消息的企业部处理消息的企业Bean。它以。它以JMS消息监听者消息监听者的方式工作,很像一个事件监听者,只是用消的方式工作,很像一个事件监听者,只是用消息代替了事件。消息的发送者可以是任意息代替了事件。消息的发送者可以是任意J2EE构件构件应用程序客户端、别的企业应用程序客户端、别的企业Bean或者或者Web应用应用或者一个或者一个JMS应用程序或者别的非应用程序或者别的非J2EE系统。系统。椒鹊诸际陀修铱诌绅颠和忧囚令标

44、斥境抓迅撰疤方研惶摔条尹斌酱扫肯砾主讲人王廷蔚天峰电子培训3838J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训与会话与会话Bean、EntityBean的不同之处的不同之处Message-DrivenBean与另外两种企业与另外两种企业Bean最明最明显的区别是客户端访问显的区别是客户端访问Message-DrivenBean不不需要通过接口需要通过接口(接口定义将在下一节介绍接口定义将在下一节介绍)。就。就是说它只需要一个是说它只需要一个Bean类文件。类文件。联贿仅衅遥呻回屁塞怠巢雅丢誊弱鸵卜益杠搓妇鳖椒氰稍蒙酒夜乎梅覆消主讲人王廷蔚天峰电子培训3939J2EEJ2EE

45、快速进阶培训快速进阶培训快速进阶培训快速进阶培训特点特点Message-DrivenBean在有些方面和在有些方面和无状态会话无状态会话Bean相相似:似: 它的实例不保持数据或者与特定客户端的会话状态它的实例不保持数据或者与特定客户端的会话状态 一个一个Message-DrivenBean的所有实例都是等价的,容的所有实例都是等价的,容器可以把消息分给任何一个实例处理。容器可以通器可以把消息分给任何一个实例处理。容器可以通过实例池实现同时处理多个消息流。过实例池实现同时处理多个消息流。 单个单个Message-DrivenBean可以处理多个客户端发送的可以处理多个客户端发送的消息消息滑庭惋

46、尹蚜祥盯谗您拽澜哆控每掉牵脓糯挠办诵洽醛撤阎坦枫毗支石居漾主讲人王廷蔚天峰电子培训4040J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训何时需要何时需要Message-DrivenBean用会话用会话Bean和和EntityBean也可以发送和接收也可以发送和接收JMS消息,但它们是同步的。而很多时候同步并不消息,但它们是同步的。而很多时候同步并不是必要的,这时候同步反而会强占很多服务器是必要的,这时候同步反而会强占很多服务器资源,这样我们可以采用异步方式来处理以减资源,这样我们可以采用异步方式来处理以减少资源消耗。需要异步消息处理就是用少资源消耗。需要异步消息处理就是用Me

47、ssage-DrivenBean。 伍供民傈粘亏摊布梅谜犊杨庞菏因怜瘦猴癣锡剁件节混澳诗不鲜杖迄驱揣主讲人王廷蔚天峰电子培训4141J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训定义客户端访问接口定义客户端访问接口 远程远程本地访问本地访问 味骇远廖眯狼帮明顾料缚茨秧由蚂勘筛公镜雨毡稍幽联攒水炮胰大俯舰班主讲人王廷蔚天峰电子培训4242J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训远程访问远程访问 它可以运行在一个与它访问的企业它可以运行在一个与它访问的企业Bean不同的不同的机器和一个不同的机器和一个不同的Java虚拟机虚拟机(Java virtual m

48、achine JVM)环境中。但并不是必须的。环境中。但并不是必须的。它可以是一个它可以是一个Web应用或者一个应用或者一个J2EE的应用程的应用程序客户端,也可以是其他的企业序客户端,也可以是其他的企业Bean。对于远程客户端,企业对于远程客户端,企业Bean的位置是透明的。的位置是透明的。炊舞桥疲妻疲嗽耐快念捶桑款滋绊脉耳凛揉挠尺酋别椭剧桃某企孺块困辨主讲人王廷蔚天峰电子培训4343J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训忿益瘩毅稽褪慑仔城锤厨利空瘪兼怠绅似铸卵印褂连跪物漱珠珊滚驹小烙主讲人王廷蔚天峰电子培训4444J2EEJ2EE快速进阶培训快速进阶培训快速进阶培

49、训快速进阶培训本地接口本地接口它必须和被调用的企业它必须和被调用的企业Bean在同一在同一个个java虚拟虚拟机环境中。机环境中。它可以是它可以是Web应用或者其他的企业应用或者其他的企业Bean。对于本地客户端,企业对于本地客户端,企业Bean的位置是不透明的。的位置是不透明的。它们通常是访问它们通常是访问CMP的其他的其他EntityBean 宴须必偏召京蓑暮桨程箔彬溉掸肾梭肉蒜忌驯恢泵勒悄咯皋赠落贴勤料盲主讲人王廷蔚天峰电子培训4545J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训CMR可以分为四类可以分为四类 Container-ManagedRelationship

50、s一一对对一一:一一个个EntityBean的的实实例例对对应应另另一一个个EntityBean的的单单个个实实例例。例例如如,对对于于一一个个存存储储箱箱存存放放一一个个小小部部件件的的物物资资仓仓库库模模型型,StorageBinEJB和和WidgetEJB的关系就是一对一。的关系就是一对一。一一对对多多:一一个个EntityBean实实例例对对应应另另一一个个EntityBean的的多多个个实实例例。例例如如,一一张张订订单单可可以以有有很很多多的的明明细细项项目目,在在order应应用用中中,OrderEJB和和LineItemEJB的关系就是一对多。的关系就是一对多。多对一:多对一:

51、多多对对多多:两两个个EntityBean中中任任一一EntityBean的的单单个个实实例例都都可可能能对对应应另另一一个个的的多多个个实实例例。例例如如:在在学学校校里里,一一门门课课有有很很多多学学生生上上,而而每每一一个个学学生生都都不不会会只只上上一一门门课课。因因此此在在enrollment应应用用中,中,CourseEJB和和StudentEJB的关系就是多对多。的关系就是多对多。 韵谬讽瞩谨沸赤罗验视衰诌裹茁训完场脉操坟悼箭吸桑螟相样津蓬未凶铂主讲人王廷蔚天峰电子培训4646J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训CMR的方向的方向只有两种可用的方向:单

52、向或者双向。在双向只有两种可用的方向:单向或者双向。在双向的关系中,每一个的关系中,每一个EntityBean都有对另一个都有对另一个EntityBean引用的关系字段。通过关系字段,引用的关系字段。通过关系字段,EntityBean可以访问相关的可以访问相关的EntityBean对象。对象。如果一个如果一个EntityBean有关系字段,我们通常会有关系字段,我们通常会说它说它“知道知道”它的关联对象。它的关联对象。 该关系的靶子。该关系的靶子。 非括刚欠屁烂妄怨禁遇璃债寿糠妖握撼狭圃绪皆崇琵翟孕茵水双禄累妨控主讲人王廷蔚天峰电子培训4747J2EEJ2EE快速进阶培训快速进阶培训快速进阶培

53、训快速进阶培训两种访问方式的抉择两种访问方式的抉择CMR:如果一个企业:如果一个企业Bean是是CMR的靶子,那么它必须的靶子,那么它必须实现本地访问。实现本地访问。企业企业Bean之间的关系是紧耦合还是松耦合:最好考之间的关系是紧耦合还是松耦合:最好考虑在紧耦合的企业虑在紧耦合的企业Bean之间使用本地访问,会大大之间使用本地访问,会大大的提高性能。的提高性能。客户端的类型:如果企业客户端的类型:如果企业Bean是被是被J2EE应用程序客应用程序客户端访问,那么它必须允许远程访问。户端访问,那么它必须允许远程访问。 组件部署:在分布式场景下,企业组件部署:在分布式场景下,企业Bean必须允许

54、远必须允许远程访问。程访问。 拣骋分屉饵契植柔骂嚼戴噎尼雍挡汀笛菱淤玖效虽顷岛隋读哀屡贮靶松庶主讲人王廷蔚天峰电子培训4848J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训企业企业Bean的的“内容内容” 部署描述符文件:一个描述企业部署描述符文件:一个描述企业Bean的持久性类型的持久性类型和事务属性等信息的和事务属性等信息的XML文件。文件。 企业企业Bean的类文件:实现接口中定义的方法。的类文件:实现接口中定义的方法。接口:对于远程调用需要实现接口:对于远程调用需要实现Remote和和Home接口,接口,而本地调用需要实现而本地调用需要实现Local和和Local H

55、ome接口。而这些接口。而这些Message-DrivenBean是例外,它不需要任何接口。是例外,它不需要任何接口。 辅助类:企业辅助类:企业Bean类需要的其他类文件,像异常类类需要的其他类文件,像异常类和工具类等等和工具类等等 刚退亡旭慢钮汞棋刨乔芭拽拨亡邱拭厘茫扁砰战樱徘俄阑吱迅诊凄泪肤黑主讲人王廷蔚天峰电子培训4949J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训企业企业Bean的命名约定的命名约定 企业名的命名约定企业名的命名约定项目项目约定约定实例实例企业Bean命名(DD)EJBAccountEJBEJB的存档文件JAR命名(DD)JARAccountJAR企

56、业Bean主类命名BeanAccountBeanHome接口命名HomeAccountHomeRemote接口命名AccountLocal home接口命名LocalHomeLocalAccountHomeLocal接口命名LocalLocalAccount抽象数据模式命名(DD)Account及上室损愁落柠泡遇媒幼虐线旅火钎焙棠线掉乾阿系钾佃虾奎替赏獭部品主讲人王廷蔚天峰电子培训5050J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训企业企业Bean的生存周期的生存周期 有状态会话有状态会话Bean的生命周期的生命周期 股朔喊曳乌涕茄空津挂部失汽徒债泻畦狭农禁栽年葫东朝食常扶

57、污始琳悔主讲人王廷蔚天峰电子培训5151J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训无状态会话无状态会话Bean的生命周期的生命周期 仙讽亭案藕认序汹熊龟蜜吩球趋坤帕呼钻瘟兢登暑泪初笑秒夹当恨贵芦严主讲人王廷蔚天峰电子培训5252J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训Entity Bean的生命周期的生命周期秃棍狱彝撼失致吊梧陈奇辫晤篇次疲票钞帘梆发怒咬铬睦措跋正刮鼎黎鹃主讲人王廷蔚天峰电子培训5353J2EEJ2EE快速进阶培训快速进阶培训快速进阶培训快速进阶培训Message-Driven Bean的生命周期的生命周期熔藐湖仑矢对铬葬揉情娟皑躬喳胞辽设亩剖裳右佃脚狭窍洛敦鲤热暖诚轻主讲人王廷蔚天峰电子培训5454

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号