EJBJAVA程序员JAVA工程师面试必看Word文档格式.docx
- 文档编号:15680376
- 上传时间:2022-11-14
- 格式:DOCX
- 页数:17
- 大小:207.23KB
EJBJAVA程序员JAVA工程师面试必看Word文档格式.docx
《EJBJAVA程序员JAVA工程师面试必看Word文档格式.docx》由会员分享,可在线阅读,更多相关《EJBJAVA程序员JAVA工程师面试必看Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
可扩展(Scalable)
分布式(Distributed)
事务处理(Transactional)
数据存储(Persistent)
安全性(Secure)
二.Sun对EJB的期望
提供一个标准的分布的、基于OO的组件架构
屏蔽复杂的系统级功能需求
Writeonce,runanywhere
与非Java应用之间的互操作能力
兼容CORBA标准
三.为什么选择EJB?
EJB服务器完成"
繁杂"
的工作:
应用开发人员关注于业务逻辑的实现而不是底层的实现机制(类似于4GL语言设计的目标)
支持事务处理
多个业务操作同时成功,或全部失败
可以通过在代码外的描述来定义事务处理级别
可扩展性
EJB可以根据您应用的增长而扩展
EJB服务器往往还提供了负载均衡和
安全性:
由EJB服务器提供资源的访问权限控制
四.EJB架构
为了满足架构的目标,规范中描述了
服务器(Server)
容器(Container)
类(Class)和实例(Instance)
Home和Remote接口
客户端(Client)
五.简化的编程模型
关注于业务逻辑实现:
EJB负责生命周期(lifecycle),数据存储(persistence),事务处理语义(transactionalsemantic),安全(security),...
通用的编程模型:
各种服务的高层API
Java是其编程语言
1.EJB特点
由一个EJB容器在运行时创建和管理EJB
在部署EJB时定制其运行方式
由EJB容器和服务器来协调客户端的访问
可以部署到任何兼容的EJB容器中
客户端对EJB的视图是由Bean开发人员决定的
2.EJB服务器
管理EJB容器(它管理Bean)
提供对操作系统服务的存取
提供Java相关的服务,尤其是
通过JNDI访问命名空间
基于OTS的事务处理服务
3.EJB容器
管理Bean生命周期:
将EJB服务器提供的服务传递给Bean
生成代码来实现对Bean的存取访问
强制事务处理的限制
创建、初始化和回收Bean
管理持久数据的存储
对客户端而言EJB容器是透明的
4.在一个EJB服务器中的容器
目前容器通常是由EJB服务器本身提供的
在EJB1.0或1.1规范中没有定义容器-到-服务器的接口
各厂商可以根据他们的见解来实现服务器和容器的各自责任
5.容器提供服务:
数据存储
容器决定何时载入/储存状态
Container-ManagedPersistence(容器管理存储/CMP)
容器负责存储您的Bean
容器生成必要的类和代码
Bean-ManagedPersistence(Bean管理存储/BMP)
Bean开发人员提供存储代码
开发人员决定如何存储,容器仍然决定何时进行
6.容器提供服务:
事务处理
可以由容器代理来实现
容器将得到业务逻辑方法的事务处理需求
容器提供事务控制代码
也可以由程序员通过代码实现
7.容器提供服务:
其它服务
其它服务包括
命名(Naming)
安全(Security)
线程管理(Threadmanagement)
这些服务由容器代理完成将减少应用开发人员的负担
8.分布式对象运算
远程对象被作为本地对象来处理:
传递信息的方式不变,但开销更大
EnterpriseJavaBeans永远运行在服务器上:
对Bean的访问永远是远程调用
9.Stub和Skeleton
由EJB生成:
"
Stub"
对要传递出去的信息编码
Tie/Skel"
将接受到的信息解码并传递给目标对象
10.分类:
EnterpriseJavaBeans
+---EntityBeans--CMP/BMP
Ejb--|
+---SessionBeans--Stateful/Stateless
会话Bean(SessionBean):
根据EJB规范,一个会话Bean是:
代表单个客户端来执行
可以参与到事务处理中
不直接代表共享于数据库中的数据,但它能访问和更新这些数据
相对而言是短暂存在的
当EJB容器失效后就不存在---客户端需要重新建立一个信新的会话对象来继续运算
实体Bean(EntityBean):
根据EJB规范,一个实体Bean是:
提供在数据库中数据的对象视图
允许被多个用户共享存取访问
可以是长期存在(只要它存在于数据库中)
实体Bean,它的主键对象,以及它的远程引用将能跨EJB容器的宕机而存在
11.EJB类和实例
构建EJB应用包括来自三方的代码
开发人员编写的代码
由EJBAPI定义的类和接口
由容器自动生成的代码
开发人员编写的代码包括
Bean类(定义了业务逻辑)
Home接口(如何查找或创建bean)
Remote接口(如何存取bean)
其它组件,根据bean实际要求
12.EJBHome接口
每个bean有一个
用于:
创建新的bean实例、查找现存的bean(只能是实体bean)
Remote接口:
定义bean的公共接口---只有在Remote接口中定义的方法才能被客户端访问
EJB客户端
可以为servlet,JSP,应用程序或其它bean
通过JNDI来查找EJBhome接口,步骤为:
创建一个JNDIContext(initialcontext)
使用JNDIContext来查找beanhome接口
使用beanhome接口来创建/查找bean实例
使用bean实例完成业务操作
实际的存取(对EJB)是通过容器生成的类来完成
EJB架构
客户端对bean访问永远不是直接的
EJBObject(tie)是由容器自身提供的:
用来帮助管理bean的生命周期
EJB中的角色
EJB服务器供应商:
开发并销售EJB服务器
EJB容器供应商:
开发并销售EJB容器
Enterprisebean开发人员:
开发并销售EJB
应用组装人员:
将不同的EJB搭建成应用
六、EJB的体系结构
目前,EJB最新的标准是2.1,EJB3.0规范正在讨论中,预计将于明年推出。
EJB2.1定义了三种企业Bean,分别是会话Bean(SessionBean),实体Bean(EntityBean)和消息驱动Bean(MessageDrivenBean)。
SessionBean用于实现业务逻辑,它可以是有状态的,也可以是无状态的。
每当客户端请求时,容器就会选择一个SessionBean来为客户端服务。
SessionBean可以直接访问数据库,但更多时候,它会通过EntityBean实现数据访问。
EntityBean是域模型对象,用于实现O/R映射,负责将数据库中的表记录映射为内存中的Entity对象,事实上,创建一个EntityBean对象相当于新建一条记录,删除一个EntityBean会同时从数据库中删除对应记录,修改一个EntityBean时,容器会自动将EntityBean的状态和数据库同步。
MessageDrivenBean是EJB2.0中引入的新的企业Bean,它基于JMS消息,只能接收客户端发送的JMS消息然后处理。
MDB实际上是一个异步的无状态SessionBean,客户端调用MDB后无需等待,立刻返回,MDB将异步处理客户请求。
这适合于需要异步处理请求的场合,比如订单处理,这样就能避免客户端长时间的等待一个方法调用直到返回结果。
调用一个EJB组件要比调用一个JavaBean麻烦些,由于EJB组件可以分布在多台服务器上,因此必须首先获得远程或本地Home接口,然后使用Home接口创建EJB之后就可以调用EJB的方法了。
七、EJB设计模式
常见EJB设计模式
SESsionFacadepattern
通常项目中,客户端往往需要频繁的对服务器端数据进行操作。
当采用实体EJB作为数据的抽象层时,如果直接让客户端程序与实体EJB交互,会产生实现一个业务需求便需要大量的EJB属性操作(如下图1)。
这直接导致如下问题:
网络负载大(远程客户端时)、并发性能低、客户端与服务器端关联度大、可重用性和可维护性差、性能
因此有必要在客户端与实体EJB层间加入Session EJB层,在SessinoEJB中实现商业逻辑并封装对实体EJB的操作。
(如下图2)
图1:
客户端直接与实体EJB交互
图2:
通过SessionEJB层实现
SessionFacade模式的好处是:
降低了网络负载,SessionEjb可以调用实体EJB的本地接口;
将商业逻辑与商业数据隔离;
维护与开发方便;
显著提高性能。
SessionFacade模式因其简单使用,是目前使用很广的模式。
但具体应用过程中应注意:
避免将所有的操作封装到一个很大的SessionEJB内;
服务器端数据结构应由实体EJB实现,除非特例否则避免直接的数据库操作;
SessionEjb内某些系统通用操作的代码容易重复(比如权限检查等,解决办法是将系统通用服务封装在JavaClass内)。
MesSAgeFacadePattern
很多时候,一次RequeST需要操作多个EJB又不需要得到即时返回。
对这种异步调用,通常应用MessageFa?
adePattern.
这种时候,如采用SessionFa?
adePattern存在如下问题:
1.客户端等待返回
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EJBJAVA 程序员 JAVA 工程师 面试
