2015-11-09 68 views
1

我有一個通過加載時編織機制創建的方面。但我需要注入我的服務,所以它的方面必須在春天創建。 我的方面是這樣的:使用java config的工廠方法創建bean

@Aspect 
public class SomeAspect { 

    @Inject 
    private SomeService someService; 

    @Before("some_pointcut_here") 
    public void doInterception() { 
    //...call service here 
    } 

} 

我可以用XML做到這一點:

<bean id="myAspect" class="foo.bar.SomeAspect" factory-method="aspectOf" /> 

所以現在的問題是如何實現用的Spring Java配置相同。任何建議將不勝感激。由於

編輯

我詮釋我與@Component方面和它的作品。這對我來說很奇怪,因爲在我的情況下xml配置依賴注入不起作用,但它適用於java配置

回答

3
@Bean 
public SomeAspect someAspect() { 
    return org.aspectj.lang.Aspects.aspectOf(SomeAspect.class); 
} 
+0

SomeAspect在編譯時沒有獲得方法aspectOf。此方法將由aspectJ weaver添加。 –

+0

請看我更正的答案。這應該工作。 – dunni

+0

我試過這個,但發生了NoSuchMethodException。然後我嘗試用@Component註釋我的方面,它的工作原理。這對我來說很奇怪,因爲當我使用xml配置時,依賴注入不起作用。但它適用於java配置。感謝您的幫助和遺憾浪費您的時間 –