一步一步学EJB 3.0(三):悟透会话Bean(上) - 编程入门网
一步一步学EJB 3.0(三):悟透会话Bean(上)时间:2011-08-05 Beniao会话 Bean 用于管理实体 Bean 和其它会话 Bean 的交互、访问资源,它们通常代表客户机执行任务 。会话 Bean 对应于“模型-视图-控制器”体系结构中的控制器,因为它们都封装三层体系结构中的商业 逻辑。会话Bean也叫会话组件(session bean),又可分为无状态会话组件和有状态会话组件两类。 无状态 Bean 之所以称作无状态是因为它们是过渡的;他们不维护方法调用之间的商业状态。有状态 会话 Bean 封装商业逻辑和特定于某个客户机的状态。有状态 bean 之所以称作“有状态”是因为它们维 护方法调用之间的商业状态,状态保留在内存中,并不持久。 一、无状态(stateless)会话Bean 无状态(stateless)会话组件不保留客户程序调用的状态,这意味着客户程序对这类组件的两次方法 调用之间是没有关联的。由于无状态会话组件无须维持与客户程序的会话状态,针对这类组件采用的实例 池机制具有较高的性能与可伸缩性,非常适合以一定数量的实例支持大量并发客户程序的调用请求。(由 于不含任何客户程序可见的状态,无状态会话组件实例池中的每一实例均被认为是等同的。) 无状态会话Bean一旦实例化就被加进会话池中,各个用户都可以共用。即使用户已经消亡,Bean 的生 命期也不一定结束,它可能依然存在于会话池中,供其他用户调用。由于没有特定的用户,那么也就不能 保持某一用户的状态,所以叫无状态Bean。但无状态会话Bean 并非没有状态,如果它有自己的属性(变 量),那么这些变量就会受到所有调用它的用户的影响,这是在实际应用中必须注意的。 二、有状态(statlful)会话Bean 有状态会话组件比较特殊,因为这类组件必须维持与客户程序的会话状态,并且这些状态又不是持久 的,从而在有状态会话组件的实例池中不同的实例之间是有区别的。因而针对有状态会话组件使用的实例 池机制主要目标是实现缓存(caching),而不是像实体组件或无状态会话组件那样强调以少量实例为大 量的并发客户请求服务。 有状态会话Bean ,每个用户有自己特有的一个实例,在用户的生存期内, Bean保持了用户的信息, 即“有状态”;一旦用户灭亡(调用结束或实例结束),Bean的生命期也告结束。即每个用户最初都会得 到一个初始的Bean。 本文先介绍于此,下篇将结合示例来介绍有状态/无状态会话Bean的相关知识点.尽请关注! |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |