Spring的AOP本質是經過動態代理實現的,Spring中有2種動態代理的實現:spring
JDK的動態代理只能對實現了接口的類進行動態代理,而CGLIB沒有此限制代理
org.springframework.aop.framework.ProxyFactory將生成代理的任務委託給org.springframework.aop.framework.DefaultAopProxyFactory此類又進一步委託給org.springframework.aop.framework.JdkDynamicAopProxy
或
org.springframework.aop.framework.Cglib2AopProxy接口
addAdvice() 方法將傳入的advice包裝爲DefaultPointcutAdvisor,此類是PointcutAdvisor接口的標準實現,默認的切入點是全部的方法rem
能夠本身建立Adviso並經過addAdvisor()方法添加aop
ProxyFactory能夠建立多個代理類,每一個都有不一樣的切面;
removeAdvice()
removeAdvisor()
adviceIncluded()方法