AOP-有接口的CGLIB动态代理
Spring底层实现代理时,如果代理对象有接口,默认选择的是JDK的动态代理来实现;而当代理对象没有接口时,默认选择的是CGLib代理来实现。
目标对象有接口
目标对象无接口
目标对象有接口设置CGLib动态代理
<!-- 手动设置代理模式(含接口默认为JDK动态代理,改为CGLib动态代理) --> <property name="proxyTargetClass" value="true"></property>
另一种设置方式
<property name="optimize" value="true"></property>