Java 기반 주석을 사용하여 를 활성화하는 방법

XML 없이 Spring AOP를 설정하려고 합니다. 나는 <aop:aspectj-autoproxy>를 활성화하고 싶습니다. 구성`으로 주석을 달았습니다.

이것이 XML 파일에 정의되는 방식입니다:

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

내 클래스에 @Configuration@EnableAspectJAutoProxy로 주석을 달려고 시도했습니다. 로 주석을 달려고 했지만 아무 일도 일어나지 않았습니다.

질문에 대한 의견 (1)

동일한 @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();
     }
 }
해설 (11)

허용 된 답변 솔루션을 사용했지만 예기치 않은 문제가 발생했으며이 매개 변수를 구성에 추가 할 때까지 이해하지 못했습니다.

@EnableAspectJAutoProxy(proxyTargetClass = true)

컨트롤러에 어노테이션을 사용하는 경우 다음과 같이 구성해야 합니다.

자바 8을 사용하는 경우 1.8.X 이상의 AspectJ 버전을 사용해야 한다는 점을 기억하세요.

@Configuration
@EnableAspectJAutoProxy(proxyTargetClass = true)
public class AppConfig {

    @Bean
    public AccessLoggerAspect accessLoggerAspect() {
        return new AccessLoggerAspect();
    }

}
해설 (0)