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

南京网站设计 联络南京乐识建筑企业资质查询系统

南京网站设计 联络南京乐识,建筑企业资质查询系统,h5案例,公众号seo排名优化一、背景 在日常开发中#xff0c;经常有需要使用事务来保证数据一致性的情况。简单点的话直接在方法上面加Transactional注解就可以了。 但这样存在一个问题#xff0c;在整个业务方法层面加注解会把很多并不需要归入事务的操作也归入到了事务里面#xff0c;这样会可能会…一、背景 在日常开发中经常有需要使用事务来保证数据一致性的情况。简单点的话直接在方法上面加Transactional注解就可以了。 但这样存在一个问题在整个业务方法层面加注解会把很多并不需要归入事务的操作也归入到了事务里面这样会可能会出现大事务的情况影响系统性能。 为了提高系统性能比较好的一种方案是只把操作数据库的部分代码放到一个方法给这个小方法加上事务这样基本不会出现大事务的问题。而要实现这种方案会碰上很常见的一种事务失效的场景。 二、事务失效场景 serviceImpl层 Service public class SdSchoolCallRecordServiceImpl extends ServiceImplSdSchoolCallRecordMapper, SdSchoolRlyCallRecord implements ISdSchoolCallRecordService {OverrideTransactional(rollbackFor Exception.class)public boolean test1() {SdSchoolRlyCallRecord callRecordnew SdSchoolRlyCallRecord();callRecord.setCallReason(2);this.save(callRecord);int a10/0;SdSchoolRlyCallRecord callRecord1new SdSchoolRlyCallRecord();callRecord1.setCallReason(6);this.save(callRecord1);return true;}Overridepublic boolean testTran1() {return this.test1();} }Controller层 GetMapping(value /tes1)ApiOperation(value tes1, notes tes1)public Result? tes1() {sdSchoolCallRecordService.testTran1();return null;}调用接口看数据库多了一条记录事务回滚失败。 三、新方式调用 ServiceImpl层为了区分把值换成1 Service public class SdSchoolCallRecordServiceImpl extends ServiceImplSdSchoolCallRecordMapper, SdSchoolRlyCallRecord implements ISdSchoolCallRecordService {//注入自身Resourceprivate ISdSchoolCallRecordService sdSchoolCallRecordService;OverrideTransactional(rollbackFor Exception.class)public boolean test1() {SdSchoolRlyCallRecord callRecordnew SdSchoolRlyCallRecord();callRecord.setCallReason(1);this.save(callRecord);int a10/0;SdSchoolRlyCallRecord callRecord1new SdSchoolRlyCallRecord();callRecord1.setCallReason(5);this.save(callRecord1);return true;}Overridepublic boolean testTran1() {//采用对象的方式调用方法return sdSchoolCallRecordService.test1();} }Controller层没有变化。 调用接口查看数据库没有记录事务成功回滚。 四、解析 Spring事务是通过动态代理实现的而内部方法调用不走动态代理因而方法上的注解就无法生效。因为这个事务注解对应的类必须加上Component或Service注解。 既然需要动态代理才能使用那么针对这种方式如果我们在类里面注入自身然后通过对象调用不就也可以将事务交给事务管理器管理。调用方式也就和普通事务能生效的Service方法一样。
http://www.zqtcl.cn/news/735860/

相关文章:

  • 南京建设银行网站首页简单的ui界面制作
  • 门户网站 建设 如何写如何布置网站
  • 网站前台功能模块介绍建设银行信用卡网站是哪个好
  • 用python做网站我那些网站开发开发语言
  • 建设网站怎样做安卓app软件公司
  • 重庆seo整站优化效果上海城建建设官方网站
  • 做淘宝要网站兰州画册设计
  • 外贸网站排行榜前十名电影网站标题怎么做流量多
  • 网站建设吉金手指专业13网站备案完成后不解析
  • 社保网站减员申报怎么做长春建筑网站
  • 网站开发用原生wordpress读者墙
  • 食品网站网页设计成都建网页
  • 网站建设 珠海专业团队表情包张伟
  • 建设铝合金窗网站.net制作网站开发教程
  • 网站后台服务器内部错误wordpress 多级菜单
  • 怎样更新网站内容怎么查看网站是哪家公司做的
  • 建设网站网站建站建立一个网站平台需要多少钱
  • 学校网站模板 html网站建设技术路线
  • 图片网站如何做百度排名深入挖掘wordpress
  • 网站建设的前景网站建设分为哪三部分
  • 房地产公司网站下载校园二手信息网站建设
  • 有关网站空间不正确的说法是设计和建设企业网站心得和体会
  • 个人网站前置审批项怎么做投票 网站
  • 网站建设零金手指花总js源码下载从哪个网站能下载
  • 网站开发属于无形资产两人合伙做网站但不准备开公司
  • 五大类型网站网站建设投标文件
  • 崇明区建设镇网站装修公司网站制作
  • 哪些网站可以做房产推广呼家楼街道网站建设
  • 微网站怎么开通萝岗手机网站建设
  • 牙科医院网站开发内江市住房和城乡建设局网站电话号码