【发布时间】:2011-07-07 20:49:39
【问题描述】:
我们有一个实现多个接口的类。我们想为整个类添加一些切入点 - 而不是它的特定接口。
如何使用 Spring AOP 完成?是否可以将方面应用于非接口类?
【问题讨论】:
我们有一个实现多个接口的类。我们想为整个类添加一些切入点 - 而不是它的特定接口。
如何使用 Spring AOP 完成?是否可以将方面应用于非接口类?
【问题讨论】:
是的,您必须使用 CGLIB 来代理类。见section 7.1.3 of the spring docs
Spring AOP 也可以使用 CGLIB 代理。这是代理类而不是接口所必需的。如果业务对象未实现接口,则默认使用 CGLIB。由于对接口而不是类进行编程是一种很好的做法,因此业务类通常会实现一个或多个业务接口。
神奇的是通过以下方式定义代理目标类...
<aop:config proxy-target-class="true">
<!-- other beans defined here... -->
</aop:config>
【讨论】: