第 23 章 EJB

23.1. 介绍

23.1.1. EJB 概述

EJB 3.1 是开发分布式、事务性、安全和可移植 Java EE 应用程序的 API,它使用了名为 Enterprise Bean 的服务器端组件。EJB 以鼓励代码重用的松耦合方式实现了应用程序的商业逻辑。EJB 3.1 是作为 Java EE 规格 JSR-318 编写文档的。
JBoss EAP 6 对使用 EJB 3.1 规格构建的应用程序提供了完整的支持。

23.1.2. 用于管理员的 EJB 概述

JBoss 管理员可以通过许多配置选项来控制 JBoss EAP 6 里的 EJB 的性能。这些选项可以通过管理控制台或命令行配置工具来访问。编辑 XML 服务器配置文件来应用修改也是可能的,但我们不推荐这么做。
根据服务器运行的方式,EJB 配置选项在管理控制台里所处的位置会有轻微的不同。
  1. 点击管理控制台顶部的 Configuration 标签。
  2. 如果服务器运行于域模式,请从左上角的 Profile 下拉菜单里选择合适的配置集。
  3. 展开 Subsystems 菜单。
  4. 展开 Container 菜单,然后选择 EJB 3

23.1.3. Enterprise Bean

如 EJB 3.1 规格 JSR-318 里所定义的,Enterprise bean 是服务器端的组件。Enterprise bean 的目的是以分离的方式实现应用程序商业逻辑,从而鼓励重用。
EJB 以 Java 类编写且用合适的 EJB 注解进行注解。它们可以部署到自己归档(JAR 文件)里的应用服务器,也可以作为 Java EE 应用程序的一部分进行部署。应用服务器管理每个 EJB 的生命周期并提供服务,如安全性、事务和并行管理。
EJB 也可以定义任意数量的商业接口。商业接口提供对 bean 的哪些方法可被客户使用的更多控制,且允许访问运行在远程 JVM 里的客户。
有三种类型的 EJB:Session beans、Message-driven beans 和 Entity beans。

重要

EJB 3.1 里现在已废弃了 Entity Bean,Red Hat 推荐使用 JPA 实体来替代。Red Hat 只推荐出于对以前的系统的向后兼容性才使用 Entity Bean。

23.1.4. Session Beans

Session Bean 是封装了相关商业过程或任务的 EJB,它被注入到请求它们的类里。有三种 Session Bean:stateless、stateful 和 singleton。

23.1.5. Message-Driven Bean

Message-driven Bean(MDB) 为应用程序的开发提供了一个事件驱动的模型。MDB 的方法不会注入或从客户代码里调用,但会被消息服务(如 JMS 服务器)里的消息触发。Java EE 6 规格要求只支持 JMS,但也可以支持其他的消息系统。