若在Spring中使用JDK的动态代理,则可以这样配置:
<bean id="" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target" value="目标对象bean的id"/>
<property name="interceptorNames" value="切面的bean" />
</bean>
若在Spring中使用CGLIB动态代理(假设目标类实现了接口),则可以这样配置:
<bean id="" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target" value="目标对象bean的id"/>
<property name="interceptorNames" value="切面的bean" />
<property name="proxyTargetClass" value="true">
</bean>
上面的这两种配置都没有设置目标对象所实现的业务接口,是因为ProxyFactoryBean中存在
自动检测目标类的所有接口的属性autodetectInterfaces,默认值为true.
那如果我们要设置目标对象所实现的业务接口,应该如何解决?
interfaces属性和proxyInterfaces属性有什么差别吗?