【摘自Head First EJB】
实体bean(entity bean)
实体bean用来表示持久存储库里的一个东西。这通常就是指数据库里的一个东西,实体bean的一个实例就表示数据库表中的一行(不过,如果数据库得到了规范化,bean也有可能从多个表的数据行提取信息,也就是说,可能对应到多个表中的多个数据行)。实体bean的一个典型例子就是Customer(顾客),一个Customer实体bean可能表示Bo Olean(ID#343),另一个Customer实体bean可能表示的是Trixia Lin(ID#870)。
消息驱动bean(message-driven bean)
只有在需要一个JMS客户的时候才会实用消息驱动bean。换句话说,消息驱动bean可以监听来自JMS消息服务的消息。客户绝对不会直接调用消息驱动 bean;要想让消息驱动做点什么事情,客户必须向一个消息服务发出一条消息。这说明,消息驱动bean没有相应的EJBObject,因为服务器会从消息服务直接得到客户请求,而不是当客户向bean发出调用时截获客户请求。NewCustomerNotification订购者就是一个典型的消息驱动 bean。
会话bean(session bean)
什么时候用会话bean呢?……应该说剩下的所有事情都要用会话bean来完成。几乎各种后端服务都可以(而且通常应该)使用会话bean来实现。实体 bean表示的是一个东西,而会话bean通常表示一个过程。可以换种说法解释,当你想到实体bean的时候,应该能想到这是一个名词,而在考虑会话 bean时,脑海里应该有动词的概念。购物就是典型的会话bean例子,信用卡处理系统也可以算做一个会话bean。
Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的 Stateful Session Bean 的实体。Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method。换言之,很可能数个使用者在执行某个 Stateless Session Bean 的 methods 时,会是同一个 Bean 的 Instance 在执行。从内存方面来看, Stateful Session Bean 与 Stateless Session Bean 比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。
分享到:
相关推荐
- **实体Bean (Entity Bean)**:在EJB 2.x中用于持久化数据到数据库,但在EJB 3.0中已经被JPA(Java Persistence API)取代。 - **消息驱动Bean (Message Driven Bean)**:用于接收来自消息队列的消息。 #### 3. ...
在JBoss这样的应用服务器中,EJB提供了三种主要的bean类型:实体Bean(Entity Bean)、会话Bean(Session Bean)和消息驱动Bean(Message-Driven Bean)。下面将详细探讨这三种bean的开发模式。 1. 实体Bean...
实体Bean(Entity Beans)是EJB的一种类型,它代表了业务逻辑中的持久数据,通常对应数据库中的记录。在这个"购物车"案例中,我们将会探讨如何使用EJB来开发一个简单的实体Bean,以及与之交互的Web前端。 1. **EJB...
EJB主要有三种类型: 1. 会话Bean(Session Bean):代表一个客户端会话,可以是无状态的(Stateless Session Bean),每个调用都是独立的,或者有状态的(Stateful Session Bean),能保持与特定客户端的会话状态。...
3. **EJB分类**:EJB分为几种类型,包括会话Bean(Session Beans)、实体Bean(Entity Beans)和消息驱动Bean(Message-Driven Beans),分别用于处理临时状态、持久数据和消息处理。 4. **EJB容器和服务器**:EJB...
本学习资料主要讲解了EJB中的三大核心组件:Session Beans、Message Driven Beans和Entity Beans。 **1. Session Beans** Session Beans是EJB中的客户端接口,主要用于处理业务逻辑。它们可以是无状态的或有状态的...
实体Bean(Entity Bean)是EJB的一种类型,它代表业务逻辑中的持久化对象,通常映射到数据库中的表。本篇文章将深入探讨EJB实体Bean的概念、其在Eclipse集成开发环境中的使用,以及与MySQL数据库的集成。 ### 一、...
会话Bean是EJB的一种类型,它代表了业务逻辑组件,为客户端提供服务。会话Bean可以是无状态的或有状态的,无状态会话Bean通常用于处理一次性请求,而有状态会话Bean则保存了与客户端交互的上下文信息。 1. **无状态...
存在两种形式:Bean管理的持久化(BMP,Bean-Managed Persistence)和容器管理的持久化(CMP,Container-Managed Persistence)。 - **消息驱动Bean**:处理JMS(Java Message Service)消息,常用于异步通信。 #...
EJB系统主要包括两种主要类型的Bean:Session Bean和Entity Bean。 **Session Bean** Session Bean是EJB中的临时业务对象,代表客户端的一次会话或操作。它们通常用于封装业务逻辑,执行计算任务,或者协调与数据库...
1. **EJB类型**: - **Session Bean**:代表客户端的临时会话,用于封装业务逻辑。它可以是无状态的(Stateless Session Bean),为每个请求创建新的实例,或者有状态的(Stateful Session Bean),维护与特定...
本文档主要介绍了在Java EJB3环境中,如何实现三种不同类型的Bean:实体Bean(Entity Bean)、会话Bean(Session Bean)和消息驱动Bean(Message-Driven Bean)。 1. 开发环境: - **MyEclipse 7.0**:这是一个...
Session Bean是EJB的一种类型,代表了一个短暂的、与客户端交互的业务逻辑组件。它通常用于处理单个客户端请求,并在会话结束后被销毁。Session Bean可以是无状态的(Stateless Session Bean),每个客户端请求都被...
消息驱动Bean(Message-Driven Bean, MDB)是EJB的一个特殊类型,它充当了应用服务器和JMS(Java Message Service)之间的桥梁,用于处理异步通信。在本教程中,我们将深入探讨如何在JBOSS 4.0.4.GA环境下开发和部署...
消息驱动Bean是Java EE中用于处理异步消息的一种特殊类型的EJB。在EJB2中,MDB主要用于接收来自消息队列或主题的消息,处理后可进一步触发业务逻辑或其他操作。 ##### 2. **创建queue和topic** 在JBOSS中,创建...
在EJB3.0中,无状态SessionBean是常用的一种组件类型,适用于处理短暂的、无持久性状态的业务逻辑。 1. **无状态SessionBean介绍** 无状态SessionBean代表了一个不保存客户端特定信息的业务逻辑组件。每次客户端...
EJB使用JNDI(Java Naming and Directory Interface)进行服务查找和绑定,这是一种在分布式环境中定位对象的机制。本压缩包包含了一个EJB中JNDI使用源码的例子,可以帮助开发者深入理解这两者之间的交互。 在Java ...
1. **EJB类型**:EJB有三种主要类型:Session Beans(会话Bean)、Message-driven Beans(消息驱动Bean)和Entity Beans(实体Bean)。会话Bean代表了客户端的临时会话,可以是无状态或有状态的;消息驱动Bean用于...
在Java 2企业版(J2EE)框架中,EJB(Enterprise JavaBeans)是服务器端的组件模型,主要分为三种类型:实体Bean(Entity Beans)、会话Bean(Session Beans)和消息驱动Bean(Message-Driven Beans)。实体Bean代表...
实体Bean有两种类型:Bean管理持久性(BMP)和容器管理持久性(CMP)。 - **Bean管理持久性**: BMP中,开发者负责管理Bean的持久性,包括连接数据库、执行SQL语句以及处理事务。 - **容器管理持久性**: CMP中,EJB...