事例dome
interface IA{
void a();
void b();
}
class A implement IA
{
@Transactional
public void a(){}
@Transactional
public void b(){
this.a();
}
}
class Test{
@Autowired
private A a;
public void test(){
a.b();
}
}
这段代码中A中的方法b的事务不会起作用,研究了一下,以下是一些个人的简单理解,如有不正确还请指正。
spring中的bean是通过aop代理过的bean,以动态代理的方式实现了事务的环绕通知。
我们可以通过Proxy类来分析类A中的this所指向的类。
以下是一个Proxy动态代理类动态生成的代理类字节码文件反编译的类。
import java.lang.reflect.*;
public final class ProxyA extends