2011-07-07 76 views
2

我們有一個實現多個接口的類。我們希望爲整個班級添加一些切入點,而不是針對特定的界面。將aspect添加到實現類不是接口

Spring AOP如何實現?是否可以將一個方面應用於非接口類?

回答

3

是的,你必須使用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>