EJB 3 事务管理探讨

2024-03-26 17:58
文章标签 事务管理 探讨 ejb

本文主要是介绍EJB 3 事务管理探讨,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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类

这篇关于EJB 3 事务管理探讨的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/849370

相关文章

BD错误集锦6——【IDEA报错】tomcat server功能无效,报错Java EE: EJB, JPA, Servlets

在网上查找原因,发现是非法关闭IDEA导致的。 Open Settings | Plugns and enable it. 在设置中enable JAVA EE和tomcat server即可。 参考: https://stackoverflow.com/questions/43607642/intellij-idea-plugin-errorproblems-found-loadin

如何利用AopContext.currentProxy()解决事务管理中的方法调用问题

在Spring应用开发中,使用AOP(面向切面编程)来管理事务是非常常见的做法。然而,在某些场景下,尤其是在同一个类的方法内部,一个非事务方法直接调用另一个带有事务注解的方法时,可能会遇到事务不生效的问题。本文将深入探讨这一问题的原因,并介绍如何通过AopContext.currentProxy()方法来有效解决这一问题。 问题背景 想象一下,你有一个服务类UserService,其中包含两个方法

如何与PM探讨项目

我曾在2020年撰写过一篇名为对产品经理的一些思考的文章,紧接着在2021年,我又写了一篇对如何分析项目的思考。在这两篇文章中,我提出了一个核心观点:“船长需要把控所有事情,但最核心的是:需要知道目标是什么,船需要航行到哪里。”这个观点至今我依然坚持。 然而,船长的角色并不一定非得是产品经理,也可以是研发人员,甚至可以是我们大家一起扮演。因为这涉及到一个前提,那就是产品经理真的知道目标是什么吗?

【AI应用探讨】—多模态应用场景

目录 1. 自动驾驶技术 多模态传感器融合 技术突破 2. 智能家居领域 多模态交互方式 应用实例 3. 智能客服领域 智能问答与情感分析 提升服务效率 4. 跨模态生成与理解 文字生成图像/视频 图像/视频生成文本 5. 未来发展趋势 多模态解析与生成 价值对齐与伦理考虑 1. 自动驾驶技术 多模态传感器融合 自动驾驶汽车通过融合摄像头、雷达、激光雷达

用sentinel作Redis集群,总结下自己遇到的坑,以及探讨下改如何设置哨兵模式

先写总结 1.sentinel 的配置文件要配置master的密码:sentinel auth-pass mymaster phFUND_linux_redis。 2.为了主从能自由切换请给主从都配置好密码,而且要设置相同的密码(完成切换后,因为从没有配置masterauth,导致重启后连接不上主): masterauth "phFUND_linux_redis" requirepass

网页卷去的距离与偏移量的问题探讨

网页卷去的距离与偏移量 方便直观下面有一张图: scrollLeft:设置或获取位于给定对象左边界与窗口中目前可见内容的最左端之间的距离 ,即左边灰色的内容。 scrollTop:设置或获取位于对象最顶端与窗口中可见内容的最顶端之间的距离 ,即上边灰色的内容。 offsetLeft:获取指定对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置 。

数据资产与企业绩效的紧密关联:深入解析数据资产如何直接影响企业绩效,并探讨如何通过策略性利用数据,优化运营,进而提升企业的整体业绩与竞争力

目录 一、引言 二、数据资产与企业绩效的紧密关联 (一)数据资产的定义与价值 (二)数据资产对企业绩效的影响 三、策略性利用数据资产优化运营 (一)建立数据驱动的企业文化 (二)构建完善的数据治理体系 (三)采用先进的数据分析技术 (四)实现数据资产的跨部门共享 四、案例分析与启示 (一)案例分析 (二)启示 五、结论 一、引言 在数字化浪潮席卷全球的今天,数

【AI应用探讨】— 通义千问模型应用场景

目录 一、文字创作 二、文本处理 三、编程辅助 四、翻译服务 五、对话模拟 六、数据可视化 七、电商行业应用 八、教育行业应用 九、开发者与科研工作者应用 一、文字创作 故事、公文、邮件撰写:通义千问能够基于用户的指令和需求,生成符合要求的文本内容,如创作故事、撰写公文或邮件等。剧本、诗歌创作:其强大的文本生成能力也为文艺创作者提供了便利,如辅助创作剧本、诗歌等。

9.4JavaEE——声明式事务管理(一)基于XML方式的声明式事务

一、如何实现XML方式的声明式事务         基于XML方式的声明式事务管理是通过在配置文件中配置事务规则的相关声明来实现的。在使用XML文件配置声明式事务管理时,首先要引入tx命名空间,在引入tx命名空间之后,可以使用<tx:advice>元素来配置事务管理的通知,进而通过Spring AOP实现事务管理。        配置<tx:advice>元素时,通常需要指定 id 和 tra

探讨Nodejs中的作用域问题。

在JS中有全局作用域和函数作用域,而在Nodejs中也自己的作用域,分为全局作用域(global)和模块作用域。   js作用域:   以前学js的时候我们的全局对象是window,如: var a = 10;console.log(window.a);   我们定义的全局变量默认是给window添加一个属性或者方法。 function fn(){var num = 22;