首页 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
资讯 业界资讯 软件杂谈 编程开发 网站建设 网络观查 搜索引擎 移动应用 网站运营 网络地图
开发 移动开发 Web前端 架构设计 编程语言 互联网 数据库 系统运维 云计算 开发杂谈
[架构设计] 会话EJB系列(二)EJB分类
会话EJB系列(二)EJB分类

 (本文承接上一篇文章《会话EJB系列(一)EJB概述》,继续对EJB内容展开详细解说)
 
EJB规范中定义了三种Bean:

会话Bean(Session Bean)
实体Bean(Entity Bean)
消息驱动Bean(MessageDrive Bean)
 

 一.SessionBean的概念和作用
 (1)定义

作用:用于chǔ理业务逻辑的完整组件。
当SessionBea部署在在EJB容器中后,客户端获取该EJB组件,并调用它的方法,至方法结束,称为:客户端与SessionBean之间的一次会话,简称为会话Bean

 (2)EJB容器中SessionBean与Spring容器中POJOBean对比

可以把运行在EJB容器中的Session Bean,看做是运行在Spring容器中的POJOBean,只是SessionBean更强大一些而已,如:
(1)并发与线程安全

EJB容器提供多线程并发功能,用于chǔ理数量众多的客户端,但开发者完全不需要理会多客户端并发的线程安全问题,就像开发普通Java类一样。

(2)方便Web Service支持

支持基于SOAP(Simple Object Access Protocol,简单对象访问协议)的WebService的访问,只需要shao量配置

(3)事务和安全管理

EJB以生命方式管理运行在其中的SessionBean的事务和安全
类似于Spring容器通过AOP以生命方式管理运行在其中的POJO Bean事务 

(3)SessionBean分类

当客户端调用会话Bean的业务方法时,实例变量会一直记录着客户端的状态,称作“会话状态”。
1)Stateful Session Bean

有状态的会话Bean为特定客户端程序保持,用1-多个实例变量来记录会话状态,其状态在会话过程中保持,会话结束则不再保存。

2)Stateless Session Bean

无状态的会话Bean不为特定的客户端程序保持状态,不需要实例变量来记录会话状态,其状态仅限于方法调用的时候存在,当方法结束后不再保存

对比可知,有状态的会话Bean往往需要额外的系统开销来维hù会话状态,所以xìng能要低一些。只有无状态的会话Bean可对外提供WebService,其他EJB不具有这种功能。
 

二.Message Driven Bean的概念和作用
(1)消息驱动Bean与事件监听器的对比

消息驱动Bean就是一个JMS消息的异步消费者,相当于一个事件机制中的事件监听器。
区别:事件监听器监听的是事件源上的事件;消息驱动Bean监听的是JMS的到来

 (2)消息驱动Bean与无状态SessionBean对比

消息驱动Bean本身由无状态SessionBean变种而来
1)相同点

不会保留任何客户端状态,对所有客户端都是同等的
可以chǔ理来自多个客户端的消息

2)不同点

客户端不能直接调用消息驱动Bean,只能通过发送JMS消息到消息目的地来触发消息驱动Bean。

消息驱动Bean本身由无状态SessionBean最大的优势在于“完全解耦”,无需获取消息驱动bean,甚至不需要知道消息驱动Bean的存在与否,只需要向目的地发送JMS消息就可以实现与消息驱动Bean的通信,相当于间接调用消息驱动Bean的onMessage方法。

 
三.实体和JPA
(1)EJB中的实体Bean与Hibernate中PO对比

EJB3中的实体Bean,是一个轻量级的持久化对象,就像Hibernate中的PO一样
1)相同点

实体Bean本身不具有持久化能力,需要JPA(java Persistence API)来操作这些实体,方可完成数据库的持久化访问。

2)不同点

改用Annotation来管理实体和数据库表之间的映射关系,而不是XML映射文件

(2)DAO与EAO

1)轻量级Java EE

以Spring+Hibernate为核心
需要在Spring容器中建立DAO(Data Access Object)层用于实现数据库的访问逻辑
(建立在PO+Hibernate持久化API基础之上)

2)经典Java EE

以EJB为核心
需要在EJB容器中建立EAO(Entity Access Object)用于实现对底层数据库的访问
(建立在Entity+JPA基础之上),本质是类似的


经过本文的详细解说,相信大家已经对EJB中的三种Bean有了一定了解


 此文从网络中自动搜索生成,不代表本网站赞成被搜索网站的内容或立场    查看原文
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 新闻资讯 小游戏 Chinese Culture 股票 三丰软件 开发 中国文化 网文精选 阅读网 看图 日历 万年历 2018年12日历
2018-12-14 0:38:15
 
  网站联系 软件世界网-www.sjsjw.com ©2014 蜀ICP备06016416号 三峰网旗下网站