2012-05-04 28 views
33

我試圖在沒有任何XML的情況下設置Spring AOP。 我希望啓用<aop:aspectj-autoproxy>的類別 註釋@Configuration如何使用基於java的批註啓用<aop:aspectj-autoproxy>

這是它會在一個XML文件中定義的方式:我想我的註釋類@Configuration@EnableAspectJAutoProxy ,但什麼都沒有發生

<aop:aspectj-autoproxy> 
<aop:include name="msgHandlingAspect" /> 
</aop:aspectj-autoproxy> 

+0

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/EnableAspectJAutoProxy.html – firstpostcommenter

回答

42

您是否在相同的@Configuration類中創建了一個方面bean? 這裏是the docs建議:

@Configuration 
@EnableAspectJAutoProxy 
public class AppConfig { 
    @Bean 
    public FooService fooService() { 
     return new FooService(); 
    } 

    @Bean // the Aspect itself must also be a Bean 
    public MyAspect myAspect() { 
     return new MyAspect(); 
    } 
} 
+1

是的,我創建了一個方面bean與您的示例中顯示的相同@Configuration類中。但仍然沒有任何反應。我現在在一個額外的xml文件中導入了 ,並通過ImportResource將其添加到我的配置類中。現在看來工作。但更好的方法是在相同的配置類 – user1374907

+0

中進行配置正是我在尋找的。即使是類名也與我的一樣:D –

+0

我沒有爲我的方面聲明@Bean,但是這些建議起作用,爲什麼? – Jaskey

相關問題