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

怎么制作一个网站的二维码百度seo收录软件

怎么制作一个网站的二维码,百度seo收录软件,南京电子商务网站建设,常州网站制作策划目录 ​编辑 一、方法内部调用 1、原理: 2、结论: 3、解决方法: 1. 增加一个service,把一个事务的方法移到新增加的service方法里面,然后进行注入再调用 2. 在自己类中注入自己 3. 通过AopContentent 二、访问权限不是pubilc 三、方法用final修饰 四、没有被spr…

 

目录

​编辑

一、方法内部调用

1、原理:

2、结论:

 3、解决方法:

1. 增加一个service,把一个事务的方法移到新增加的service方法里面,然后进行注入再调用

2. 在自己类中注入自己

3. 通过AopContentent

二、访问权限不是pubilc

三、方法用final修饰

四、没有被spring管理

五、数据库不支持事务

解决方案:使用InnoDB等支持事务的数据库引擎。

六、没有开启事务

七、错误的事务传播

八、自己捕获了异常

 1、 原因:

2.、解决方案:

        手动抛出异常或配置rollbackFor属性

九、手动抛出别的异常

十、自定义回滚异常

十一、多线程调用

十二、嵌套事务回滚过头

解决方法:


一、方法内部调用

在同一个类的service中,调用其他的事务方法

@Service
public class DemoService {@Transactionalpublic void query(Demo demo) {save(demo) ;}@Transactionalpublic void save(Demo demo) {}}

        可以看到,query方法调用了save的方法,由于spring的事务实现是因为aop生成代理,这样是直接调用了this对象,所以也不会生成事务。

1、原理:

        当spring容器启动的时候,发现有@EnableTransactionManagement注解,此时会拦截所有bean的创建,然后会扫描一下bean上是否有@Transaction注解(类、接口、或者方法上有这个注解都可以),如果有这个注解,spring会通过aop的方式给这个bean生成代理对象(代理对象中存在本类对象),代理对象中会增加一个拦截器,拦截器会拦截bean中public方法的执行,会在方法执行前启动事务,方法执行完毕之后提交或者回滚事务。

2、结论:

如果A和B两个方法在同一个类中
1、如果A加了@Transaction注解,B上有没有@Transaction注解,事务都是有效的,则AB 在同一个事务中。

2、如果A不加@Transaction注解,B上有没有@Transaction注解,事务都是无效的。

如果A和B两个方法不在同一个类中
1、如果A加了@Transaction注解,B上有没有@Transaction注解,事务都是有效的。

2、如果A不加@Transaction注解,B加了@Transaction注解,只有B是有事务的。

3、如果A不加@Transaction注解,B也不加@Transaction注解,A和B都是没有事务的。

简单理解:

        在同一个类中,只要A加了@Transaction注解,无论B加不加注解,AB都在同一个事务中,事务有效。

        如果AB在同一个类中,A不加注解,B加了注解,则事务失效;如果AB不同类,A不加注解,B加了注解,则只有B有事务。

原因分析:

        在A方法有@Transaction注解时,spring在管理的时候会生成一个代理类,在外部调用A方法时,实际执行的是代理类里面的方法,该代理类里面的方法已经包括了B方法的调用,已经成为了一个方法,所以事务是有效的。

 3、解决方法:


1. 增加一个service,把一个事务的方法移到新增加的service方法里面,然后进行注入再调用

@Service
public class DemoTwoService {@Transactionalpublic void save(Demo demo) {}
}@Service
public class DemoService {@AutowiredDemoTwoService demoTwoService;@Transactionalpublic  void query(Demo demo) {demoTwoService.save(demo);}
}

2. 在自己类中注入自己

@Service
public class DemoService {@AutowiredDemoService demoService;@Transactionalpublic  void query(Demo demo) {demoService.save(demo);}@Transactionalpublic void save(Demo demo) {}
}

由于这种写法基于spring的三级缓存不会导致,循环依赖的问题出现

3. 通过Aop

http://www.dtcms.com/wzjs/385636.html

相关文章:

  • 微信网站制作软件有哪些来客seo
  • 政府网站等保必须做吗百度快速查询
  • 做西点的网站44555pd永久四色端口
  • 建购物网站需要些什么天津seo网络营销
  • 二级网站怎样做营销网站案例
  • 加强网站信息怎么做谷歌搜索为什么用不了
  • 武汉光谷网站建设营销技巧和营销方法培训
  • 中高端网站建设淘宝付费推广有几种方式
  • 百度地图手机网站开发搜索引擎广告案例
  • 北京做网站制作公司自己如何注册网站
  • 海珠建网站公司武汉seo优化服务
  • 网站前置审批项 教育外链seo推广
  • 域名注册和网站建设全网络品牌推广
  • 四川有什么好的网站建设公司企业网络营销推广方案
  • 济南集团网站建设百度一下 你就知道官方
  • wordpress主题添加一个自定义页面抖音矩阵排名软件seo
  • 高级网站设计师手写代码篇如何建立自己的博客网站
  • 网页建站专业公司知名品牌营销案例100例
  • 旅游网站建设与网页设计意义推广网址
  • 泉州免费网站制作个人网站制作教程
  • 网站建设摘要江门网站优化公司
  • 连云港网站建设推广江门网站定制多少钱
  • 工程建设领域专项治理工作网站西安网站seo费用
  • 小企业网站建设源代码湖南关键词优化快速
  • 外国人爱做视频网站阿里指数
  • 做网站赚钱的时代过去了吗厦门人才网官网招聘信息网
  • 宁波四方网络网站建设搜索引擎和浏览器
  • 阿里云国际站官网手机系统流畅神器
  • 网站开发服务合同今日新闻快报
  • 政府电子政务与网站建设总结肇庆百度快速排名