@Transactional位置问题

来源:7-7 商品和订单服务中使用MQ(中)

慕码人1018289

2019-09-08

师兄,我发现改造用异步做扣库存的时候,@Transactional的位置似乎有问题,应该放到decreaseStock方法上而非视频中的decreaseStockProcess方法。像视频中那样放到decreaseStockProcess上,会因为代理模式而开启不了事务。

写回答

1回答

廖师兄

2019-09-08

感谢提醒,确实有Bug,源码里已修改。product的7-8

0
3
Arsenalzjx
回复
qq_红_14
因为事务是使用aop的,aop的原理基本上是jdk动态代理或者是cglib,标注事务的方法的类上如果有实现接口则会默认使用jdk动态代理,而标注方法在接口中并未声明,所以事务就不生效了,这个只要不实现接口就可以标注在decreaseStockProcess,实现了接口就需要在接口中声明该方法,事务才能生效
2020-01-15
共3条回复

SpringCloud Finchley(M2+RELEASE+SR2)微服务实战

SpringCloud组件实现微服务,【已升级Finchley.Release】

5674 学习 · 2489 问题

查看课程