spring源码AOP-createProxy
到最后我们再来看createProxy方法,查看它到底是怎么实现AOP的
它还顺手把我们的算是切面拦截的拦截器放了进来

进来之后首先就去做了一个proxyFactory的创建,然后进行了copyFrom并给上了当前实例

这些属性的作用一一对应这
exposeProxy会将一些属性设置到threadLocal里,当前线程自有
那么我们继续回来看
然后做isProcyTargetClass的判断,这里的判断是什么含义?这里的判断意思是是否已经决定使用cglib动态代理了,如果是那么就去给proxyTargetClass设置为true强制去使用cglib动态代理else则使用jdk动态代理
然后再去buildAdvisors

这个方法是在做将我们的传入的拦截器转化为advisor数组,然后对advisor进行了循环做wrap方法

这里在将传入的拦截器转化成advisor,那么到这就是做了一个buildAdvisors方法,将拦截器转化成advisor
最后我们再来看getproxy

进来查看
先看createAopProxy
看createAopProxy
这里就是判断到底是使用cglib动态代理还是jdk动态代理,那么我们返回去

那么这个getProxy就有两个实现
到这就是实现了AOP的创建,如何实现就是利用反射

这就是一个简易的代理类


浙公网安备 33010602011771号