这三个方法是在同一个类中,都有事务,通过同一个对象调用的时候就会事务就会失效
同一个对象内事务方法互调默认失效
原因绕过了代理对象,事务使用代理对象来控制的解决:使用代理对象来调用事务方法
1) 、引入aop-starter ;spring-boot-starter-aop;这个依赖中又引入了aspectj
2) 、在springboot启动类上添加@EnableAspectJAutoProxy( exposeProxy = true)注解;这样就开启 aspectj动态代理功能。以后所有的动态代理都是aspect对外暴露代理对象,而不是jdk动态代理
3)、本类互调用调用对象,通过代理对象去调用
orderServiceImpl orderService = (OrderServiceImpl ) AopContext. currentProxy();
orderService.b();
orderService.c();