EJB 事务管理深入解析
1. EJB 服务概述
EJB 的一大优势在于提供各类服务,让开发者专注于应用的业务逻辑。此前我们已了解到部分服务,如持久化管理。现在,我们将深入探讨另外两项服务——事务管理和安全管理,以及 EJB 异常处理机制。在这个过程中,我们会再次接触到三种类型的 Bean,并观察事务如何在方法和 Bean 之间传递,异常如何从 Bean 中的方法产生并传递到客户端。以下是关于 EJB 服务的一些要点:
- 实体 Bean 不能调用 UserTransaction 接口的方法。
- 当 Bean 实例抛出系统异常时,容器会销毁该 Bean 实例并回滚其事务。
- 应用的用户会先转变为 Principal ,再转变为特定的安全角色,如经理。
2. EJB 事务简介
事务支持是 EJB 架构的重要优势。在现实生活中,事务是常见的商业概念,代表着两个商业参与者之间的交换。例如,在线买书、从 ATM 取款、在商店购物等日常行为都涉及事务。因此,解决现实问题的企业应用必须处理事务。
事务由一组精确定义的操作组成,有明确的开始和结束。标记这些边界的过程称为事务界定。事务界定可以由开发者自己完成(Bean 管理事务,BMT),也可以由容器完成(容器管理事务,CMT)。这种选择会影响 Bean 的编码方式。
如果选择 CMT Bean,需要在部署描述符中定义事务属性,并将其分配给 Bean 的方法。这些属性决定了方法在被其他方法调用时是否在事务中运行。EJB 提供了两个包含事务相关方法的接口: UserTransaction
超级会员免费看
订阅专栏 解锁全文
59

被折叠的 条评论
为什么被折叠?



