spring aop : 다른 aspect 가 instroduction(advise 함수호출) 되는 시점을 캐치하는 aspect.

2016-03-12 17:31

타이틀을 짧게 적다보니 말이 좀 이상합니다만...


class Target { @TargetAnnotation public void foo() { //something } } @Aspect @Order(10) class TargetAnnotationAdvisor { @NestedAnnotation @Around("@annotation(targetAnnotation)") public void executeFoo() { //something } } @Aspect @Order(20) class AnnotationAopAdvisor { @Before("@annotation(NestedAnnotation)") public void nestedExecuteFoo() { //something } }

Target 클래스의 foo 메소드를 @TargetAnnotation 을 이용하여 보고 있는 TargetAnnotationAdvisor 클래스가 있습니다.

그리고 foo 메소드 실행에 따라 TargetAnnotationAdvisor 의 executeFoo 함수를 실행시키려고 합니다.

그런데 그 executeFoo 실행 시점에 AnnotationAopAdvisor 클래스의 nestedExecuteFoo 함수를 실행시키고자 합니다.

이론상으론 가능하다 생각하여 작업하였으나 nestedExecuteFoo 함수가 실행되지 않더군요.

Order 에 대해서는 같은 포인트컷에 대해서만 적용됩니다.

따라서 위에 적은 @Order 는 사실 무의미하죠.

혹시 이런 문제를 해결해본 경험이 있을까요~?

0개의 의견 from SLiPP

의견 추가하기

연관태그

← 목록으로