XML 없이 Spring AOP를 설정하려고 합니다.
나는 <aop:aspectj-autoproxy>
를 활성화하고 싶습니다.
구성`으로 주석을 달았습니다.
이것이 XML 파일에 정의되는 방식입니다:
<aop:aspectj-autoproxy>
<aop:include name="msgHandlingAspect" />
</aop:aspectj-autoproxy>
내 클래스에 @Configuration
과 @EnableAspectJAutoProxy
로 주석을 달려고 시도했습니다.
로 주석을 달려고 했지만 아무 일도 일어나지 않았습니다.
동일한 @Configuration
클래스에서 aspect 빈을 생성했나요?
다음은 문서에서 제안하는 내용입니다:
@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)
컨트롤러에 어노테이션을 사용하는 경우 다음과 같이 구성해야 합니다.
자바 8을 사용하는 경우 1.8.X 이상의 AspectJ 버전을 사용해야 한다는 점을 기억하세요.
@Configuration
@EnableAspectJAutoProxy(proxyTargetClass = true)
public class AppConfig {
@Bean
public AccessLoggerAspect accessLoggerAspect() {
return new AccessLoggerAspect();
}
}