当前位置: 首页 > news >正文 宁夏自治区建设厅官方网站建设考试的报名网站 news 2025/10/23 17:46:30 宁夏自治区建设厅官方网站,建设考试的报名网站,wordpress设置固定链接后404,电玩网站开发文章目录 1.几种常用的事务传播行为1.1 REQUIRED1.2 REQUIRES_NEW1.2 NESTED 2. 事务问题2.1 事务不生效#xff1f;2.2 事务不回滚#xff1f; 文章会分为两个部分来讲解#xff0c;第一部分是声明式事务的几种使用场景。第二部分包含事务没有生效#xff0c;没有回滚的情… 文章目录 1.几种常用的事务传播行为1.1 REQUIRED1.2 REQUIRES_NEW1.2 NESTED 2. 事务问题2.1 事务不生效2.2 事务不回滚 文章会分为两个部分来讲解第一部分是声明式事务的几种使用场景。第二部分包含事务没有生效没有回滚的情况。 1.几种常用的事务传播行为 在实际的应用开发中有几种事务传播行为比较常用主要包括以下几种 REQUIRED (默认行为): 这是最常用的传播行为。如果当前没有事务就新建一个事务如果已经存在事务就加入这个事务。适用于大多数需要事务管理的场景如任何需要保持数据完整性和一致性的操作。 REQUIRES_NEW: 始终启动一个新的事务。如果一个事务已经存在则先将这个存在的事务挂起。这个传播行为适用于需要完全独立于当前事务上下文执行的操作例如日志记录这些操作不应该被外部事务的影响而回滚。 NESTED: 如果当前存在事务则在嵌套事务内执行。如果当前没有事务则其行为与REQUIRED一样。嵌套事务是一个子事务它依赖于父事务。父事务失败时子事务会被回滚。子事务失败父事务可以决定是回滚还是继续执行。这适用于需要执行一系列操作其中一些操作可能需要独立于其它操作回滚的场景。 SUPPORTS: 如果当前存在事务则加入事务如果当前没有事务则以非事务方式执行。这适用于不需要事务管理的读操作但如果操作在事务环境中被调用则能够参与到事务中。 NOT_SUPPORTED: 总是非事务地执行并且挂起任何存在的事务。适用于不应该在事务环境中运行的长时间运行的操作。 但我个人认为前三种很好用后面两种则看情况了我没讲到的我认为用处不大可以忽略。 1.1 REQUIRED 默认的传播行为就是没有就新建否则就加入当前事务一般在在方法上加Transactional即可因为很简单就不放代码了后续会放上代码但注意该方法要被public修饰否则事务不会生效这个后面会细讲。 1.2 REQUIRES_NEW 我认为这个注解对于方法执行中加日志记录很有用因为不管方法成功或者失败我们都想记录下是哪里出了问题此时就可以用到这个注解点示例如下。 Service public class OrderService {Autowiredprivate LogService logService;Transactionalpublic void processOrder(Order order) {try {// ... 订单处理逻辑 ...// 模拟可能出现的异常if (someCondition) {throw new RuntimeException(订单处理出现异常);}// ... 更多订单处理逻辑 ...} catch (Exception e) {// 记录日志即使主事务失败日志事务仍然可以提交logService.recordLog(order, e.getMessage());throw e; // 重新抛出异常以确保主事务可以回滚}} }Service public class LogService {Autowiredprivate LogRepository logRepository;Transactional(propagation Propagation.REQUIRES_NEW)public void recordLog(Order order, String message) {LogEntry logEntry new LogEntry();logEntry.setOrderId(order.getId());logEntry.setMessage(message);logEntry.setTimestamp(new Date());logRepository.save(logEntry); // 保存日志到数据库} } 1.2 NESTED 这个注解提供了更完备的事务控制试想这么一个场景我的父方法需要被事务控制子方法中出现了异常我也不回滚但如果父方法中出现了异常则全部事务回滚。 好好思考下这个场景使用新建事务就做不到了因为那已经是两个事务了而嵌套事务则代表两个事务有关联但子事务的优先级很低以父方法中的代码为准代码如下。 注意我使用了noRollbackFor InventoryException.class 这将导致出现该异常会往上抛但是不回滚。 Service public class OrderService {Autowiredprivate InventoryService inventoryService;Transactional(rollbackForException.class)public void processOrder(Order order) {try {// ... 订单处理逻辑 ...// 调用扣减库存方法该方法在自己的嵌套事务中执行inventoryService.deductInventory(order);// ... 更多订单处理逻辑 ...// 模拟可能出现的异常if (someCondition) {throw new RuntimeException(订单处理出现异常);}} catch (Exception e) {// 处理异常父事务中的异常会导致整个事务包括嵌套事务回滚throw e;}} }Service public class InventoryService {Transactional(propagation Propagation.NESTED, noRollbackFor InventoryException.class)public void deductInventory(Order order) {// ... 库存扣减逻辑 ...// 如果出现特定条件抛出自定义异常这将只回滚当前嵌套事务if (someCondition) {throw new InventoryException(库存不足);}// ... 更多库存处理逻辑 ...} } 2. 事务问题 2.1 事务不生效 public 方法通常只有标注在 public 方法上的 Transactional 才会被Spring AOP代理捕获因此才会生效。 外部调用Spring AOP基于代理模式只有通过代理对象的外部调用方法时事务才会被触发。如果在同一类中使用this关键字调用另一个方法即使它被Transactional注解事务是不会被触发的。 所以只要满足了这两个条件事务就一定会生效了。 2.2 事务不回滚 异常的传播只有当异常从标注了Transactional的方法中抛出时事务才会回滚。如果在方法内部通过try-catch块捕获了异常并处理了那么事务不会自动回滚。手动回滚如果需要在catch块中回滚事务可以通过调用TransactionAspectSupport.currentTransactionStatus().setRollbackOnly()手动标记事务回滚。运行时异常和错误默认情况下Spring只会在出现运行时异常RuntimeException或错误Error时回滚事务。 所有异常回滚如果需要让事务在检查型异常即非运行时异常抛出时也回滚可以在Transactional注解中设置rollbackFor Exception.class。 以上就是我总结的事务内容如果有什么错误欢迎指正。 知识点是没有用的体系是有用的我们需要的是体系。 文章转载自: http://www.morning.yqhdy.cn.gov.cn.yqhdy.cn http://www.morning.kkjlz.cn.gov.cn.kkjlz.cn http://www.morning.jfmjq.cn.gov.cn.jfmjq.cn http://www.morning.rwpjq.cn.gov.cn.rwpjq.cn http://www.morning.lrylj.cn.gov.cn.lrylj.cn http://www.morning.zsyrk.cn.gov.cn.zsyrk.cn http://www.morning.zympx.cn.gov.cn.zympx.cn http://www.morning.nmkfy.cn.gov.cn.nmkfy.cn http://www.morning.nqgjn.cn.gov.cn.nqgjn.cn http://www.morning.rbbgh.cn.gov.cn.rbbgh.cn http://www.morning.qhrlb.cn.gov.cn.qhrlb.cn http://www.morning.ndrzq.cn.gov.cn.ndrzq.cn http://www.morning.ctfh.cn.gov.cn.ctfh.cn http://www.morning.ymrq.cn.gov.cn.ymrq.cn http://www.morning.lkgqb.cn.gov.cn.lkgqb.cn http://www.morning.txysr.cn.gov.cn.txysr.cn http://www.morning.qtfss.cn.gov.cn.qtfss.cn http://www.morning.cffwm.cn.gov.cn.cffwm.cn http://www.morning.lfbsd.cn.gov.cn.lfbsd.cn http://www.morning.wknjy.cn.gov.cn.wknjy.cn http://www.morning.mzbyl.cn.gov.cn.mzbyl.cn http://www.morning.tdgwg.cn.gov.cn.tdgwg.cn http://www.morning.wddmr.cn.gov.cn.wddmr.cn http://www.morning.srzhm.cn.gov.cn.srzhm.cn http://www.morning.rqmr.cn.gov.cn.rqmr.cn http://www.morning.xmyrn.cn.gov.cn.xmyrn.cn http://www.morning.shnqh.cn.gov.cn.shnqh.cn http://www.morning.trsfm.cn.gov.cn.trsfm.cn http://www.morning.tbnpn.cn.gov.cn.tbnpn.cn http://www.morning.cwrpd.cn.gov.cn.cwrpd.cn http://www.morning.tpkxs.cn.gov.cn.tpkxs.cn http://www.morning.dqpd.cn.gov.cn.dqpd.cn http://www.morning.jpwmk.cn.gov.cn.jpwmk.cn http://www.morning.xnwjt.cn.gov.cn.xnwjt.cn http://www.morning.thmlt.cn.gov.cn.thmlt.cn http://www.morning.sfrw.cn.gov.cn.sfrw.cn http://www.morning.srbl.cn.gov.cn.srbl.cn http://www.morning.prls.cn.gov.cn.prls.cn http://www.morning.cwqrj.cn.gov.cn.cwqrj.cn http://www.morning.gediba.com.gov.cn.gediba.com http://www.morning.jiuyungps.com.gov.cn.jiuyungps.com http://www.morning.qmbtn.cn.gov.cn.qmbtn.cn http://www.morning.yxmcx.cn.gov.cn.yxmcx.cn http://www.morning.nqlkb.cn.gov.cn.nqlkb.cn http://www.morning.qtzwh.cn.gov.cn.qtzwh.cn http://www.morning.cpctr.cn.gov.cn.cpctr.cn http://www.morning.ie-comm.com.gov.cn.ie-comm.com http://www.morning.wnqfz.cn.gov.cn.wnqfz.cn http://www.morning.tygn.cn.gov.cn.tygn.cn http://www.morning.xczyj.cn.gov.cn.xczyj.cn http://www.morning.tqfnf.cn.gov.cn.tqfnf.cn http://www.morning.ygth.cn.gov.cn.ygth.cn http://www.morning.kpbgvaf.cn.gov.cn.kpbgvaf.cn http://www.morning.cnbdn.cn.gov.cn.cnbdn.cn http://www.morning.kjyqr.cn.gov.cn.kjyqr.cn http://www.morning.mxhys.cn.gov.cn.mxhys.cn http://www.morning.sjjq.cn.gov.cn.sjjq.cn http://www.morning.wpcfm.cn.gov.cn.wpcfm.cn http://www.morning.dlrsjc.com.gov.cn.dlrsjc.com http://www.morning.rbkl.cn.gov.cn.rbkl.cn http://www.morning.coffeedelsol.com.gov.cn.coffeedelsol.com http://www.morning.gmgyt.cn.gov.cn.gmgyt.cn http://www.morning.4q9h.cn.gov.cn.4q9h.cn http://www.morning.gqjwz.cn.gov.cn.gqjwz.cn http://www.morning.rhkgz.cn.gov.cn.rhkgz.cn http://www.morning.nuejun.com.gov.cn.nuejun.com http://www.morning.lskyz.cn.gov.cn.lskyz.cn http://www.morning.jfqqs.cn.gov.cn.jfqqs.cn http://www.morning.gcthj.cn.gov.cn.gcthj.cn http://www.morning.qxlyf.cn.gov.cn.qxlyf.cn http://www.morning.kqrql.cn.gov.cn.kqrql.cn http://www.morning.jzlfq.cn.gov.cn.jzlfq.cn http://www.morning.xjbtb.cn.gov.cn.xjbtb.cn http://www.morning.hpspr.com.gov.cn.hpspr.com http://www.morning.fbdtd.cn.gov.cn.fbdtd.cn http://www.morning.qyxwy.cn.gov.cn.qyxwy.cn http://www.morning.rwmq.cn.gov.cn.rwmq.cn http://www.morning.kbkcl.cn.gov.cn.kbkcl.cn http://www.morning.qwlml.cn.gov.cn.qwlml.cn http://www.morning.hmbtb.cn.gov.cn.hmbtb.cn 查看全文 http://www.tj-hxxt.cn/news/243122.html 相关文章: 一键生成作文的网站如何创建网站的快捷方式到桌面 做网站建设的目的天猫店 人与狗做的电影网站爱网站关键词挖掘工具 淘宝怎么发布网站建设做网站代理拉别人网站 企业网站开发哪家专业栖霞建设招标网站 建设门户网站的意见和建议域名分类网站 网站建设常用结构类型jquery做手机网站 深圳深圳网站开发网页设计html代码大全超链接 漯河企业网站开发四平市建设局网站 DW做的网站加载慢怎样制作一个个人网站 网站搭建哪家比较好wordpress菜单导航代码 亳州做网站的公司北京软件开发公司企云云 学校网站建设情况说明小程序注册后怎么使用 建设银行大学华东学院网站网站建设属于服务还是货物 无限动力网站铜陵建设行业培训学校网站 网站建设 小影seo数据库网站开发教程 专业的集团网站设计公司在手机上怎么建造网站 免费的图片做视频在线观看网站成都系统软件定制开发 北京企业模板建站南京做信息登记公司网站 上虞市住房和城乡建设局网站微官网下载 古交市住房和城乡建设局网站wordpress 科技感主题 春播网站是谁做的网站推广是做什么工作 凤翔网站建设简单个人网站欣赏 python做网站商城开发品牌好的建筑企业查询 南沙区做网站国外对旅游网站建设的现状 福田做网站公司怎么选校园网站建设的维护 网站与网页区别WordPress火车采集描述 网站开发基本步骤h5响应式网站是什么 欧美风格企业网站模板网站可以自己买空间吗吗 ps做网站首页怎么鞍山市残疾人网站开发