本类方法调用,如何使事务依然生效;调用本类方法为什么要用AopContext.currentProxy()

        springAOP中只会切入代理类,从一个类调用另外另外一个类的时候,是会生成代理对象的。但是如果是本类方法的互相调用,那么就不会生成代理对象,随之方法配置的事务也会失效。

那么我们可以使用两种方法来避免这种事务失效的问题
1.
((Service)AopContext.currentProxy()).B() 来调用B方法,用这种方式,即使是本类方法的互相调用也能生成代理对象啦
 ((Service) AopContext.currentProxy()).handleResult();

2.

就是在该类中自动注入本类bean,使用@Autowired即可,然后使用这个注入的bean去调用本类方法,即可达到两方法事务都起效

你可能感兴趣的:(mybatis,java)