Spring AOP使用JDK动态代理或CGLIB来为目标对象创建代理。
proxy-target-class
值为false:创建基于接口的代理。
值为true:创建基于类的代理。
在spring xml中配置方法:
<!--创建基于类的代理 -->
<aop:config proxy-target-class="true">
不开启基于类的代理的情况如下:
其中UserAspect是切面类,其中一个切点增强了UserServiceImp1的login方法。在未开启类代理的情况下,无法通过
((MethodSignature)(joinPoint.getSignature())).getParameterNames();这样的方式获取被增强的方法的参数名,x为null。