转载:EJB中的三种Bean类型

本文详细介绍了EJB框架中的三种核心bean类型:实体bean用于持久化存储,消息驱动bean用于监听JMS消息,而会话bean则涵盖了剩余的功能需求。实体bean代表数据库表的一行或多个表的组合,消息驱动bean专门用于接收JMS客户端的消息,会话bean则用于执行业务逻辑。此外,文章还区分了会话bean的两种类型:StatefulSessionBean和StatelessSessionBean,并讨论了它们在内存管理和状态保存方面的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【摘自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 的优势却在于他可以维持使用者的状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值