会话Bean介绍 - Read.PPT

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
会话Bean介绍 - Read.PPT

会话Bean介绍 回顾 1 回顾 2 会话Bean的生命周期 1 会话Bean和实体Bean之间的一个主要区别就是它们的生命周期 相对来说,会话Bean的生命周期存活时间要短得多。其生命周期差不多就是与客户端的会话周期相当 会话Bean是非持久对象,也就是说bean不是存储在永久性的存储器中的,这和实体Bean也有很大的区别 会话Bean的生命周期 2 例如,客户端程序调用会话Bean来完成一个结帐的业务逻辑,EJB容器就负责生成这个会话Bean组件的一个实例。当客户在稍后断开连接后,应用服务器将销毁这个Bean实例,那么该Bean的生命周期就结束了 会话Bean的类型 无状态会话Bean (stateless session bean) 状态会话Bean (stateful session bean) 不同类型的会话Bean用于不同的场合 Stateful Session Bean 1 一些商务过程本身就是包含了一系列多个请求而且持续一段时间的会话。 电子商务Web商店,用户可以向购物车内添加商品。用户每添加一次,就会执行一次“添加商品到车篮”的请求。 银行的商务处理,一个出纳在处理一个客户的事务可能不止一次请求,而是一系列的请求操作。包括查看帐号余额、存款、转帐等等。 Stateful Session Bean 2 这些商务过程往往都是跨越很多的方法请求和事务的处理。 状态Bean就保留了每个客户的状态。如果一个状态Bean的状态改变了,那么在接下来的调用过程中,与该Bean对应的客户的状态也改变了 Stateless Session Bean 1 但是有些简单的商务过程只需要一次请求,这种单一请求的商务过程不需要在方法中调用过程中保持状态。 在每个方法调用完之后,容器要不就是销毁该bean实例,或者重新生成一个实例,或者继续让该bean实例存在。这与特定的容器的实现相关。 Stateless Session Bean 2 例如一个信用卡组件(例如消费时刷卡)可以是一个无状态会话Bean。该组件根据信用卡号,密码,日期,金额为输入。验证有效性然后扣除金额。最后返回一个是否成功的信息。返回后Bean不保留客户的状态。下次有其他人刷卡时,还是需要输入卡号密码等。因此它不保留原先客户的信息。 Stateless Session Bean 3 状态会话Bean实现调度池的调度 1 对于状态会话Bean来说,实现调度不像无状态会话Bean那么简单。 因为我们的状态会话Bean中保存了用户的状态,因此不能在用户请求状态会话Bean时随意分配。 但是为了系统资源的节约和提升整体的性能还是需要调度池。 状态会话Bean实现调度池的调度 2 采取了类似于虚拟内存的方法 当新的一个Bean请求时,池里有空闲的Bean存在时直接把这个Bean分配;如果没有会把一个内存中比较空闲的Bean对象交换出去,其对话状态保存在硬盘上。这个过程称之为钝化(passivate)。当被钝化的Bean的客户端要求调用该Bean时,就会把Bean实例从硬盘上交换到内存。这一这一过程称为激活(activation)。 状态会话Bean实现调度池的调度 3 缺点:激活和钝化的过程可能导致I/O瓶颈,因此状态会话bean比无状态的会话bean要消耗更多的系统资源 要实现激活和钝化,Bean对象就必须实现序列化。也就是把对象状态以比特串(bit-block)的形式写入硬盘。并能够将写入硬盘的序列化串读回内存,转换成原先的Bean对象。 状态会话Bean的钝化 状态会话Bean的激活 无状态会话Bean的生命周期 状态会话Bean的生命周期 * * *

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档