创建Spring AOP代理的基本方法是使用org.springframework.aop.framework.ProxyFactoryBean
这可以完全控制切入点和通知(advice)以及他们的顺序。
使用ProxyFactoryBean或者其他IoC相关类来创建AOP代理的最重要好处是通知和切入点也可以由IoC来管理。
被代理类没有实现任何接口,使用CGLIB代理,否则JDK代理。
通过设置proxyTargetClass为true,可强制使用CGLIB
如果目标类实现了一个(或者多个)接口,那么创建代理的类型将依赖ProxyFactoryBean的配置。
如果ProxyFactoryBean的proxyInterfaces属性被设置为一个或者多个全限定接口名,基于JDK的代理将被创建。
如果ProxyFactoryBean的proxyInterfaces属性没有被设置,但是目标类实现了一个(或者多个)接口,那么ProxyFactoryBean将自动检测到这个目标类已经实现了至少一个接口,创建一个基于JDK的代理。