AopContext.currentProxy();为什么能获取到代理对象

Spring中创建动态代理有两种方式,即jdk动态代理、cglib动态代理。
jdk动态代理创建时JdkDynamicAopProxy中的invoke方法中存入的
AopContext.currentProxy();为什么能获取到代理对象
cglib动态代理CglibAopProxy在创建代理时也存入了
AopContext.currentProxy();为什么能获取到代理对象
这就是为什么在同一个类中进行方法调用时嵌套事务(aop)失效用AopContext.currentProxy();能获取到代理对象的原因。