2012-07-06 3 views
2

Aspect과 함께 특정 서명으로 메소드 호출을 가로 채 싶습니다.포인트 컷의 추상 유형

내 포인트 컷은 다음과 비슷한 모습이 될 것

execution(public Result * (Input))"

그러나 ResultInputabstract이다.

이 포인트 컷은 Result의 하위 유형을 반환하고 Input의 하위 유형으로 작동하는 모든 메소드와도 일치합니까? 그게 내 의도 야.

답변

3

거의. 형식 이름 바로 뒤에 더하기 기호를 추가해야합니다.

execution(public Result+ * (Input+)) 

다음은 doc의 예입니다. Spring은 제한된 버전의 AspectJ 구문을 사용한다. SubtypePattern의 모든 유형 A +와 패턴 - 여기

pointcut callToUndefinedMethod(): 
    call(* AbstractFacade+.*(..)) 
    && !call(* AbstractFacade.*(..)); 

그리고는 (간결한) documentation

SubtypePattern입니다.