Hello, Freakin world!

[Spring AOP] Aspect 선언하기 본문

Spring boot

[Spring AOP] Aspect 선언하기

johnna_endure 2020. 7. 18. 09:11

@AspectJ 를 사용할 수 있게 되면, 스프링 빈 중 @Aspect 애너테이션이 정의되어있는 경우 자동으로 찾아 Spring AOP에 사용한다.

 

<bean id="myAspect" class="org.xyz.NotVeryUsefulAspect">
    <!-- configure properties of aspect here as normal -->
</bean>
@Aspect
public class NotVeryUsefulAspect {

}

@Aspect 클래스는 다른 클래스와 마찬가지로 클래스와 메서드를 가질 수 있다. 또 포인트컷, 어드바이스, 인트로덕션(inter-type)도 포함할 수 있다.

 

만약 애스펙트 빈을 추가할 때, xml 방식을 사용한다면 위의 방식으로 충분하다. 하지만 자바 애너테이션 스타일을 사용한다면 다음과 같이 @Component 를 같이 사용해 빈으로 만들어줘야 한다.

@Component
@Aspect
public class NotVeryUsefulAspect {

}

 

참고 : @Aspect 선언이 애스펙트는 advice의 적용 대상에서 제외됩니다. 

Comments