2011-12-05 2 views
3

AspectJ 지원과 함께 Spring AOP를 사용하여 특정 어노테이션으로 메소드를 짜기 위해 노력하고 있습니다. pointcut @annotation (classname)을 사용하여 쉽게 할 수 있다는 것을 알고 있습니다.어노테이션 속성과 일치시키기위한 포인트 포인트 컷

하지만 어노테이션 속성을 기반으로 제작자를 만들어야합니다. 문제의 주석은 Spring의 @RequestMapping이며, 메소드의 속성을 확인해야합니다.

필자는 조언의 본문에 액세스 할 수 있지만 필자가 선호하는 것은 일치하는 주석 당 하나의 조언을 만드는 것입니다.

이것이 가능합니까?

답변

1

거기에 doesn't seem to be a way to do it하지만 주석의 매개 변수를 즉시 확인할 수 있으며 만족스럽지 않으면 즉시 전달할 수 있습니다. 이 너무 우아하지 못한 경우

@Around("execution(public * *(..)) && @annotation(reqMap)") 
public Object myMethod(ProceedingJoinPoint pjp, RequestMapping reqMap) 
     throws Throwable { 
    if (notRightPropertyValue(reqMap)) 
     return pjp.proceed(); 
    // Do your stuff here 
} 

, 당신은 정말 관심이 단지 방법을 표시하는 별도의 주석을 발명 고려한다.