EJB事务的特点:
提供声明式事务与编程式事务
声明式事务:应用程序只需要关心业务逻辑,由容器来负责事务的管理。这是实践中常用的方法。
编程时事务:应用程序编码人员自己写事务代码。
② EJB事务编程的类型
A、CMT 容器管理事务
B、BMT Bean管理事务
C、Client-MT Client-Controlled Transaction客户端管理事务
实体Bean只能用CMT。
CMT:
由容器实现的远程对象/拦截器,负责调用中间件服务。
优点:在应用程序代码中,不用编写事务服务代码;
缺点:粗粒度,只能在方法级别控制事务。
EJB Bean类中编程方式来使用事务(BMT):
优点:细粒度地控制事务
缺点:事务代理与业务代码纠缠
Client-controlled Transaction:
优点:客户端可以精确控制事务
缺点:可能会因为网络问题引起是事务的回滚。
3、EJB事务边界的划分
事务边界:事务边界是指事务从哪里开始。
CMT的事务特性:
Required:Bean类的方法必须要在事务环境下运行,这是容器默认的事务机制。
事务特性只能使用在CMT。
RequiredNew:Bean类中的方法必须在一个新的事务环境下运行。
Supports:Bean类的方法不需要支持事务。如果客户端有事务,则继续沿用原事务环境。
Mandatory:Bean类中方法必须要在事务环境下运行。客户端不启动事务则报错。
NoSupported:Bean类