- 因为调用自身方法并不会调用Spring托管的对象,Spring的AOP机制就不会扫描到该方法的@Transactional注解。
- 所以解决的办法就是让Spring知道我们使用你们托管的对象来操作的,让Spring 的AOP扫描到我们执行了事务的操作。
- 下面代码直接就可以解决啦调用问题。
@Service
public class XxxService{
public void methodA(){
...
#获取Spring 托管的Bean对象
XxxService xxxServiceProxy = SpringUtil.getBean(XxxService.class);
#然后调用methodB()方法
xxxServiceProxy.methodB();
...
}