当前位置: 首页 > news >正文

ps个人网站设计总结运动服饰网站建设目的

ps个人网站设计总结,运动服饰网站建设目的,推送者seo,九江建筑实现原理 : Aop (TransactionInterceptor) 实现 使用spring声明式事务注意事项 同一个bean中的方法调用必须重新声明一个bean调用、否则后续方法调用的事务默认使用第一个第二个不生效 package com.cloud.person.service.impl;import com.cloud.person.dao.S1Mapper; import…实现原理 : Aop (TransactionInterceptor) 实现 使用spring声明式事务注意事项 同一个bean中的方法调用必须重新声明一个bean调用、否则后续方法调用的事务默认使用第一个第二个不生效 package com.cloud.person.service.impl;import com.cloud.person.dao.S1Mapper; import com.cloud.person.service.S1Service; import com.cloud.person.service.S2Service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional;/*** author haizhuangbu* date 2024/3/27 09:58* mark S1ServiceImpl*/ Service public class S1ServiceImpl implements S1Service {Autowiredprivate S1Mapper s1Mapper;Autowiredprivate S2Service s2Service;Autowiredprivate S1Service s1Service;OverrideTransactional(propagation Propagation.REQUIRED)public void insert(String data) {s1Mapper.insert(data);// 调用s2 想要当前类的insert2事务生效必须重新注入当前bean 调用 insert2方法s1Service.insert2(data);int i 1 / 0;}Transactional(propagation Propagation.REQUIRES_NEW)Overridepublic void insert2(String data) {s2Service.insert(data);} }REQUIRED REQUIRED  存在事务、就加入事务、不存在就新建事务(默认) 模拟,当前情况 s2 依赖 s1 事务 OverrideTransactional(propagation Propagation.REQUIRED)public void insert(String data) {s1Mapper.insert(data);// 调用s2 想要当前类的insert2事务生效必须重新注入当前bean 调用 insert2方法s1Service.insert2(data);int i 1 / 0;}Transactional(propagation Propagation.REQUIRED)Overridepublic void insert2(String data) {s2Service.insert(data);} 处理结果 : s1,s2 两张表数据全部插入失败 REQUIRES_NEW REQUIRES_NEW: 创建新事务与其他事务没有联系、成功就插入 模拟,当前情况 s2 为新事务、不依赖 s1.s1成功失败对s2 无任何影响 OverrideTransactional(propagation Propagation.REQUIRED)public void insert(String data) {s1Mapper.insert(data);// 调用s2 想要当前类的insert2事务生效必须重新注入当前bean 调用 insert2方法s1Service.insert2(data);int i 1 / 0;}Transactional(propagation Propagation.REQUIRES_NEW)Overridepublic void insert2(String data) {s2Service.insert(data);} 处理结果: s2 插入成功、s1 插入失败 SUPPORTS SUPPORTS : 支持当前事务、当前事务存在就加入、不存在就按照无事务执行 模拟 1 :  s1 存在事务、s2 依赖 s1 事务、全部插入失败 OverrideTransactional(propagation Propagation.REQUIRED)public void insert(String data) {s1Mapper.insert(data);// 调用s2 想要当前类的insert2事务生效必须重新注入当前bean 调用 insert2方法s1Service.insert2(data);int i 1 / 0;}Transactional(propagation Propagation.SUPPORTS)Overridepublic void insert2(String data) {s2Service.insert(data);} 结果 1:  模拟2: 模拟 s2 插入异常、s1无事务、s2 依赖 s1, s1没有事务、s2 就是无事务执行、异常不影响数据库操作、不会触发回滚 Override // Transactional(propagation Propagation.REQUIRED)public void insert(String data) {s1Mapper.insert(data);// 调用s2 想要当前类的insert2事务生效必须重新注入当前bean 调用 insert2方法s1Service.insert2(data);}Transactional(propagation Propagation.SUPPORTS)Overridepublic void insert2(String data) {s2Service.insert(data);int i 1 / 0;} 结果:  无事务执行、s1,s2全部执行成功 MANDATORY MANDATORY : 依赖其他事务、其他事务不存在就抛出异常 模拟:  Override // Transactional(propagation Propagation.REQUIRED)public void insert(String data) {s1Mapper.insert(data);// 调用s2 想要当前类的insert2事务生效必须重新注入当前bean 调用 insert2方法s1Service.insert2(data);}Transactional(propagation Propagation.MANDATORY)Overridepublic void insert2(String data) {s2Service.insert(data); // int i 1 / 0;} 结果: 程序直接抛出异常、s1 不存在事务、s1数据成功插入 NOT_SUPPORTED  NOT_SUPPORTED  如果存在事务、当前事务挂起、以非事务方式执行 模拟:  s1 存在事务、s2 通过非事务方式执行、s2 不受s1 影响 OverrideTransactional(propagation Propagation.REQUIRED)public void insert(String data) {s1Mapper.insert(data);// 调用s2 想要当前类的insert2事务生效必须重新注入当前bean 调用 insert2方法s1Service.insert2(data);int i 1 / 0;}Transactional(propagation Propagation.NOT_SUPPORTED)Overridepublic void insert2(String data) {s2Service.insert(data);} 结果:  s1 插入失败、s2 插入成功 NEVER NEVER : 存在事务就抛出异常、对标 MANDATORY 模拟: s1 存在事务、s2 抛出异常 OverrideTransactional(propagation Propagation.REQUIRED)public void insert(String data) {s1Mapper.insert(data);// 调用s2 想要当前类的insert2事务生效必须重新注入当前bean 调用 insert2方法s1Service.insert2(data);// 走不到这儿、前面抛出异常int i 1 / 0;}Transactional(propagation Propagation.NEVER)Overridepublic void insert2(String data) {s2Service.insert(data);} 结果: 抛出异常,s1,s2表插入失败 NESTED NESTED :  嵌套事务、内部事务回滚、不影响外部事务、spring默认不支持 模拟:  // 编程式事务Autowiredprivate TransactionDefinition transactionDefinition;Autowiredprivate PlatformTransactionManager manager;OverrideTransactional(propagation Propagation.REQUIRED)public void insert(String data) {s1Mapper.insert(data);// 调用s2 想要当前类的insert2事务生效必须重新注入当前bean 调用 insert2方法s1Service.insert2(data); // int i 1 / 0;}Transactional(propagation Propagation.NESTED)Overridepublic void insert2(String data) {s2Service.insert(data);// 回滚当前事务TransactionStatus transaction manager.getTransaction(transactionDefinition);manager.rollback(transaction);}
http://www.zqtcl.cn/news/899220/

相关文章:

  • 免费网站空间怎么做网站主持人
  • 开源建站系统有哪些网站信息化建设合同
  • 昆明云南微网站淄博专业网站建设
  • 古典网站源码海南app开发
  • 自己做网站前期困难吗怎么早网站上放广告
  • 建设银行招标网站南昌网站建设公司信息
  • 网站建设与管理专业介绍湖南长沙邮政编码
  • 社区论坛系统免费开源seo网站诊断报告
  • 网站LOGO透明底色PNG格式怎么做的开发一款游戏需要多少资金
  • 网站推广营销策略北京东直门网站建设
  • 制作公司网站需要购买域名和服务器吗聊城做企业网站
  • 大连网站建设价格低做校招的网站有哪些
  • 电脑端网站和手机网站区别做的好的营销型网站有哪些内容
  • 长沙市做网站网站建设 全是乱码
  • ps做网站原形系统学做网站
  • 接网站 建设wordpress 打开慢 google
  • wordpress 移动 建站网站前台如何做访问量显示
  • 公司做网站买域名之后做什么打鱼网站开发
  • 南京市城乡建设局网站二级建造师证件查询
  • 百度关键词优化系统网站优化师招聘
  • 网站方案建设书推广产品的软文怎么写
  • 网站栏目按扭邢台手机网站建设地方
  • 青浦赵巷网站建设做网站需要编程吗
  • 公司logo设计含义株洲seo
  • 公司制作网站做论坛网站怎么赚钱吗
  • 深圳 外贸 网站建设 龙医院网站建设价格
  • 网上建网站驰易网站建设
  • 建设工程招标专业网站网站联盟广告
  • 自建站英文公司网站制作银川
  • 顺德网站建设公司信息全网推广软件