Я пытаюсь установить Spring AOP без какого-либо XML.
Я'хотел бы включить <aop:aspectj-autoproxy>
в класс, который является
аннотирован с @Configuration
.
Именно так он будет определен в XML-файле:
<aop:aspectj-autoproxy>
<aop:include name="msgHandlingAspect" />
</aop:aspectj-autoproxy>
Я попытался аннотировать свой класс с помощью @Configuration
и @EnableAspectJAutoProxy
но ничего не произошло.
Создали ли вы aspect bean в том же классе @Configuration
?
Вот что предлагает документация:
@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, вам нужно использовать версию AspectJ выше, чем 1.8.X
@Configuration
@EnableAspectJAutoProxy(proxyTargetClass = true)
public class AppConfig {
@Bean
public AccessLoggerAspect accessLoggerAspect() {
return new AccessLoggerAspect();
}
}