什么是Session Bean?
Session Bean封装了业务逻辑的,能被本地客户端,远程客户端,以及web service客户端通过编程的方式调用。为了访问部署在服务器上的应用,客户端需要调用session bean的方法。Session Bean在服务器中为客户端执行运算,使客户端不必关注复杂的业务逻辑。
Session bean不是持久的。
Session Bean的类型:
有状态的(stateful),无状态的(stateless),单例的(singleton)
Stateful Session Beans
对象的状态是由它的实例化变量值组成的。在有状态的session bean中,特定的客户端与session bean的session是以实例化变量的方式呈现的。因为客户端与session bean是有交互动作的,所以状态通常被称作会话状态。
从其名字可以看出,session bean与交互的session非常类似。session bean不是共享的,它只对应一个客户端,同理交互的session只能对应一个用户。当客户端终止响应后,session bean也会随客户端的消亡而消亡。
会话的状态只存在于客户端与session bean的会话中。如果客户端断开与session bean的联系,那么session终止,同时会话的状态消失。这种状态的短暂性不是问题,因为当客户端与session bean会话终止,保存状态就没必要了。
Stateless Session Beans
无状态的session bean不保存与客户端的会话状态。客户端调用无状态bean的方法时,bean的实例变量可能会保留与客户端之间的状态,但仅限于在一次调用过程中。方法调用完成后,有关客户端的状态就丢失了。在无状态会话bean的池中,客户端可能会改变实例化变量的状态,此状态持续到下次调用过程中。除了方法调用过程,所有的无状态会话bean的实例都是平等的,EJB容器会指派实例给任意的客户端。也就是说,无状态会话bean的状态适用于所有用户。
因为要支持大量用户,无状态的会话bean能为需要大量客户端访问的应用提供更好的伸缩性。也就是说对于支持同样数量的客户端访问,无状态的会话bean要少于有状态的会话bean。
Singleton Session Beans
单例会话bean实例化一次,且存在于应用的整个生命周期。单例会话bean设计的应用环境是这样的,客户端可以共享的,并发的访问一个单例会话bean的实例。
单例会话bean在功能上与无状态会话bean类似,但是单例bean只有一个实例,而无状态bean是存在池中的,池中的任意一个bean可能会响应客户端请求。与无状态会话bean类似,单例会话bean可以实现web service终端。
在客户端调用时,单例bean持有会话状态,但是当服务器崩溃或关闭时状态是不保存的。
单例bean在应用启动的时候初始化,允许单例bean执行应用程序的初始化任务。当应用销毁时单例bean可能会执行些清理工作,因为单例bean存活在应用的整个生命周期。
When to use Session Beans
有状态的session bean 适用于以下情况:
当特定的客户单与bean交互时需要保存状态
客户端调用bean时,bean需要保存客户端的信息
客户端调用应用的其他组件时间接的调用了bean,bean需要呈现客户端简单的视图
幕后的bean管理的几个企业bean的工作流程
为了提高性能,如果符合以下几点特征,你最好选无状态的session bean:
对于特定的客户端bean的状态没有数据
在一个方法调用过程中,bean对所有的客户端提供通用的任务。例如,你应该用一个无状态的session bean 去发送一封确认在线用户的邮件
bean实现了web service
以下几种情况适用单例session bean:
状态需要保持在应用的整个生命周期
bean需要并发的访问
应用需要bean在应用启动及停止时执行任务
bean实现了web service
分享到:
相关推荐
JavaBean和Session Bean是Java企业级应用开发中的重要概念,特别是在使用Enterprise JavaBeans(EJB)技术时。本文将深入探讨这两个概念,以及如何在实际项目中使用它们。 首先,让我们了解什么是JavaBean。...
**企业级JavaBeans (EJB) 3.0:核心概念与Session Bean详解** 企业级JavaBeans(Enterprise JavaBeans,简称EJB)是Java平台上用于构建可部署在服务器端的企业级应用的重要组件模型。EJB 3.0是EJB规范的一个重大...
【Session Bean】是一种Java EE(Enterprise Edition)中的核心组件,主要负责在服务器端处理业务逻辑,提供会话状态。在企业级应用开发中,Session Bean是Java持久化框架的重要组成部分,它通过Java Naming and ...
在Java企业级应用开发中,SessionBean是Java服务器端组件(Java EE)的一部分,它扮演着客户端和数据库之间的重要中介角色。本教程将通过具体的例子深入解析SessionBean与客户端的结合,以及如何与Oracle数据库进行...
**SessionBean:深入理解与应用** SessionBean是Java EE(Enterprise Edition)中企业级JavaBeans(EJB)的一部分,主要用于实现服务器端的业务逻辑。它是一个可复用的组件,可以处理客户端的会话状态,提供了在...
**EJB3.0无状态SessionBean例子** Enterprise JavaBeans(EJB)是Java平台上的一个核心组件,用于构建企业级分布式应用。EJB3.0是EJB规范的一个重大改进,它引入了诸多简化开发的新特性,使得EJB更加轻量级且易于...
与Stateful Session Bean(有状态会话Bean)不同,它维护了客户端会话状态,而Stateless Session Bean(无状态会话Bean)则不保留任何客户端状态,每次调用都独立于其他调用。Session Bean主要用于表示业务逻辑,...
### EJB3图文教程之开发Session Bean:详细解析与实践指南 #### 一、环境搭建:JBuilder2007与JBoss4.0的完美结合 在开始EJB3.0的Session Bean开发之前,首先需搭建一个适宜的开发环境。本教程将指导你如何在...
EJB系统主要包括两种主要类型的Bean:Session Bean和Entity Bean。 **Session Bean** Session Bean是EJB中的临时业务对象,代表客户端的一次会话或操作。它们通常用于封装业务逻辑,执行计算任务,或者协调与数据库...
它可以是无状态的(Stateless Session Bean),为每个请求创建新的实例,或者有状态的(Stateful Session Bean),维护与特定客户端会话的状态。 - **Entity Bean**:用于表示数据库中的持久化对象,实现业务实体的...
在Java EE中,SessionBean是企业 Bean(EJB)的一种类型,它提供了服务器端的方法来处理客户端的请求。SessionBean分为两种主要类型:有状态(Stateful Session Beans,SSB)和无状态(Stateless Session Beans,SSB...
标题"Stateful--sessionbean.zip_sessionBean_stateful"表明这个压缩包包含有关有状态会话Bean的实现资料,可能包括设计思路、步骤截图和源代码。这些资源对于理解如何创建和使用SFSB至关重要。 描述中的"有状态的...
在"ejb sessionbean demo"中,我们主要探讨的是如何使用EJB的Session Bean进行开发和演示。Session Bean通常用于实现业务逻辑,它们可以是无状态的,意味着每个请求都会创建一个新的Bean实例,不保留任何先前会话的...
Java SessionBean状态判断的例子,代码包中的两个实例,分别对无状态SessionBean和有状态SessionBean进行了演示,请注意,Home对象是EJB对象的制作生成库,该方法生成EJB对象,value参数用于计数器的初始化,在无状态...
"itfuture_sessionbean"的第二部分可能是指一系列教程或学习资料,聚焦于深入理解Session Bean的使用和实现。JBulider作为标签,表明这些材料可能与使用JBulider这一集成开发环境(IDE)来创建和管理Session Bean...
**EJB Session Bean详解** Enterprise JavaBeans (EJB) 是Java平台企业版(Java EE)的核心组成部分,它为构建可扩展、安全且事务处理的分布式应用程序提供了强大的框架。EJB中的Session Bean是其中一类重要的组件...
**EJB2 SessionBean**是Java企业版(Java EE)中的一个重要组件,它代表了业务逻辑层,主要用于处理应用程序的核心业务操作。SessionBean是可复用的Java对象,通过远程接口提供服务,允许客户端(如Web层或客户端...
基于java的开发源码-EJB中有、无状态SessionBean的两个例子.zip 基于java的开发源码-EJB中有、无状态SessionBean的两个例子.zip 基于java的开发源码-EJB中有、无状态SessionBean的两个例子.zip 基于java的开发源码-...