很多朋友(包括我)对两种session bean存在误解,认为有状态是实例一直存在,保存每次调用后的状态,并对下一次调用起作用,而认为无状态是每次调用实例化一次,不保留用户信息。
但是,经过仔细分析并用实践检验后,发现,事实恰好相反:
有状态和无状态会话bean的本质区别是它们的生命期。首先用到的概念--用户:session bean 的用户实际上就是直接调用ejb的类的实例,甚至是这个实例的某个方法。同一个类的不同实例对于session bean 来说是不同的用户。
(1)有状态会话bean :每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”;一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束。即每个用户最初都会得到一个初始的bean。
(2)无状态会话bean :bean一旦实例化就被加进会话池中,各个用户都可以共用。即使用户已经消亡,bean 的生命期也不一定结束,它可能依然存在于会话池中,供其他用户调用。由于没有特定的用户,那么也就不能保持某一用户的状态,所以叫无状态bean。但无状态会话bean 并非没有状态,如果它有自己的属性(变量),那么这些变量就会受到所有调用它的用户的影响,这在以后实际应用中应该值得注意。
分享到:
相关推荐
会话Bean是EJB的一种类型,它代表了业务逻辑组件,为客户端提供服务。会话Bean可以是无状态的或有状态的,无状态会话Bean通常用于处理一次性请求,而有状态会话Bean则保存了与客户端交互的上下文信息。 1. **无状态...
在EJB中,会话Bean分为两种类型:无状态会话Bean(Stateless Session Bean)和有状态会话Bean(Stateful Session Bean)。无状态会话Bean不保留任何客户端特定的信息,每次调用都是独立的。而有状态会话Bean则可以...
实战EJB之三开发会话Bean(有状态会话Bean) 本文主要讲解了有状态会话Bean(Stateful Session Bean)的概念、特点、生命周期和开发过程。下面是相关知识点的总结: 1. 什么是有状态会话Bean? 有状态会话Bean...
### JavaEE5学习笔记05-EJB之会话Bean总结 #### EJB(Enterprise JavaBeans)简介 EJB(Enterprise JavaBeans)是Java EE平台的一部分,用于开发和部署可重用的服务组件。EJB规范定义了如何编写、部署以及管理企业...
EJB是Java Enterprise Edition(J2EE或现在的Java EE)的一部分,主要分为三种类型:会话Bean(Session Beans)、实体Bean(Entity Beans)和消息驱动Bean(Message-Driven Beans)。 **会话Bean介绍** 会话Bean是...
- **会话Bean (Session Bean)**:分为有状态和无状态两种,用于封装业务逻辑操作。 - **消息驱动Bean (Message-Driven Bean)**:处理JMS(Java Message Service)消息。 ### 2. 有状态会话Bean (Stateful Session ...
【Java EJB会话Bean】是Java企业版(Java EE)中的一个重要概念,它是一种用于构建可复用、模块化的企业级应用程序的组件模型。EJB(Enterprise JavaBeans)会话Bean是EJB的一种类型,主要用于处理业务逻辑,与...
本资源包包含了会话Bean、实体Bean和消息Bean的源代码,这三种类型的Bean是EJB 3.0的核心组成部分。 1. **会话Bean (Session Beans)** - **无状态会话Bean (Stateless Session Beans)**: 提供无持久性状态的业务...
与前面两种会话bean不同,单身会话bean在整个应用程序生命周期中只有一个实例,它是全局唯一的。这使得它非常适合用作全局的配置对象、协调器或者缓存服务。值得注意的是,虽然名为“单身”,但它们仍然可以处理并发...
会话Bean是EJB的一种类型,代表了一个业务逻辑单元,它可以与客户端交互,处理事务和安全性。有状态会话Bean(Stateful Session Bean)特别之处在于它能够保持与特定客户端的会话状态,也就是说,它能够记住之前与该...
2. **实体Bean**:实体Bean是EJB的三大类型之一(另外两种是会话Bean和消息驱动Bean)。实体Bean通常用于表示数据库中的实体,它们有持久化状态,并且可以通过其唯一的键(主键)进行识别。在购物车应用中,可能包含...
该示例使用Eclipse 3.3 Europa IDE、JDK 6.0、GlassFish 2.0翻写的第一个EJB 3.0会话bean应用。注意:必须首先安装GlassFish服务器,可以通过安装NetBean 6.0(M9)来完成安装该服务器,或能单独安装也行,然后在...
环境:Window XP profession, JDK 1.6, MySQL 5.0, JBoss...该示例使用EJB 3.0的无状态会话Bean呼叫JPA持久层完成数据库的操作,推荐广大企业级Java程序员项目中使用。 注意:连接池的配置参见上一个资源readme.txt文档
【无状态会话Bean实验指导】的文档主要涵盖了如何开发和测试无状态Session Bean的步骤,这是企业级JavaBeans(EJB)技术的一部分,属于中间件领域的知识。EJB是Java平台上的一个标准,用于构建可扩展、可靠的分布式...
无状态会话 Bean 是 EJB 的一种类型,它为每个请求创建一个新的实例,不保留任何客户端的上下文信息。这使得它们非常适合执行计算密集型任务或事务操作,而不涉及持久化状态。 3. **EJB3 的简化** EJB3 相比于...
会话Bean是EJB的一种类型,主要用于处理业务逻辑,它们不持久化数据,而是作为客户端和数据库之间的中介。 1. **EJB环境** 在EJB环境中,开发者可以创建和部署Java组件,这些组件可以在Java EE服务器上运行。EJB...
在JBoss这样的应用服务器中,EJB提供了三种主要的bean类型:实体Bean(Entity Bean)、会话Bean(Session Bean)和消息驱动Bean(Message-Driven Bean)。下面将详细探讨这三种bean的开发模式。 1. 实体Bean...
**EJB 3.0远程会话Bean查找详解** 企业级JavaBeans(EJB)是Java平台上用于构建可部署的企业级应用的一种核心组件。EJB 3.0是EJB规范的一个重大改进,它简化了API,使得开发更加便捷。在EJB 3.0中,远程会话Bean是...
1. 新建一个 EJB 项目,并在该项目中创建一个具有远程接口的 EJB3 无状态会话 Bean,实现两数相加,并返回和之功能,参考代码如下: 业务接口: 会话 Bean 类: 2. 将%JBOSS_HOME%\bin\client 目录下的 jboss-client...