2013-01-04 67 views
5

我的方面如下:才能擺脫bean定義中使用Spring的AOP方面

@Aspect 
public class SomeAspect{ 
    //define pointcuts 
    // define Advices pertaining to pointcuts 
} 

我的方面,配置XML文件:

<?xml ...?> 
    <beans ... 
    xmlns:aop 
    xmlns:context ..> 
     <bean id="someAspect" class="...SomeAspect"/> 
     <aop:aspectj-autoproxy /> 

    </beans> 

這將運行完全正常

我需要什麼樣的:

我想擺脫如上所示在我的config xml文件中編寫每個Aspect的bean定義。

我試過如下:

添加@ComponentSomeAspect和XML加<context-component-scan>包含我的方面希望我的課被拿起作爲一個Bean並作爲看點相應的包裝物。 但是,我的方面根本沒有得到迴應。

任何指針?

回答

4

context:component-scan元素有一個子元素,您可以使用它包含註釋類以供掃描使用。

看看context:include-filter元素及其屬性。

<context:component-scan base-package="my.package.to.scan"> 
    <context:include-filter type="annotation" expression="org.aspectj.lang.annotation.Aspect"/> 
</context:component-scan> 

我想你試過將有什麼樣的工作,但沒有看到它完全一樣,你做到了,這是很難肯定地說。

+0

完美!它只適用於包含過濾器...這是有點令人驚訝,因爲它應該默認拾取。謝謝@ nicholas.hauschild! – Vikram