XMLなしでSpring AOPをセットアップしようとしています。 <aop:aspectj-autoproxy>
アノテーションが付けられたクラスで@Configuration
を有効にします。
これは、XMLファイルで定義される方法です。
<aop:aspectj-autoproxy>
<aop:include name="msgHandlingAspect" />
</aop:aspectj-autoproxy>
クラスに@Configuration
と@EnableAspectJAutoProxy
の注釈を付けようとしましたが、何も起こりませんでした。
同じ@Configuration
クラスでアスペクトBeanを作成しましたか? ドキュメント が提案するものは次のとおりです。
@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();
}
}
受け入れられた回答ソリューションを使用しましたが、予期しない問題があり、このパラメーターを構成に追加するまで理解できませんでした。
@ EnableAspectJAutoProxy(proxyTargetClass = true)
@Controllerに注釈を使用する場合は、この方法で構成する必要があります
Java 8を持っている場合、1.8.Xより大きいAspectJのバージョンを使用する必要があることを覚えておいてください。
@Configuration
@EnableAspectJAutoProxy(proxyTargetClass = true)
public class AppConfig {
@Bean
public AccessLoggerAspect accessLoggerAspect() {
return new AccessLoggerAspect();
}
}