Springboot中事务失效中的不是Spring中的对象

    synchronized(userID.toString().intern()){
获取代理对象
        IVoucherOrderService proxy = (IVoucherOrderService) AopContext.currentProxy();
        return proxy.createVoucherOrder(voucherId);//proxy为当前代理对象,这样就可以被spring管理
    }
}
//插入情况使用悲观锁
//不能把synchronized加在方法上,这样每个用户都是用的一个锁,应该在用户ID上加锁

@Transactional
public  Result createVoucherOrder(Long voucherId) {}
Result createVoucherOrder(Long voucherId);在代理对象(接口)中需要创建对应方法,才能在实现类中使用对应方法

不这样使用的话@Transactional事务会失效

pop.xml中加入对应包--动态代理的模式

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
</dependency>

启动类加入注解暴露这个对象

@EnableAspectJAutoProxy(exposeProxy = true)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值