添加方面到实现类而不是接口

时间:2011-07-07 12:22:44

标签: java spring aop pointcut

我们有一个实现多个接口的类。我们想为整个类添加一些切入点 - 而不是它的特定接口。

如何使用Spring AOP完成?是否可以将方面应用于非接口类?

1 个答案:

答案 0 :(得分:4)

是的,您必须使用CGLIB代理类。见section 7.1.3 of the spring docs

  

Spring AOP也可以使用CGLIB代理。这是代理类而不是接口所必需的。如果业务对象未实现接口,则默认使用CGLIB。由于优化的做法是编程接口而不是类,业务类通常会实现一个或多个业务接口。

神奇的是通过以下方式定义proxy-target-class ...

<aop:config proxy-target-class="true">
    <!-- other beans defined here... -->
</aop:config>