은의 다음과 같은 측면을 가정 해 봅시다 :AspectJ로 메소드 호출을 수행하는 객체 인스턴스를 검색 할 수 있습니까?
aspect FaultHandler {
pointcut services(Server s): target(s) && call(public * *(..));
before(Server s): services(s) {
// How to retrieve the calling object instance?
if (s.disabled) ...;
}
}
포인트 컷은 Server
의 공개 방법에 대한 모든 호출을 포착하고이 중 하나가 호출 직전에 before
조언을 실행합니다.
before
조언에 공개 Server
메서드에 대한 호출을 수행하는 개체 인스턴스를 검색 할 수 있습니까? 그렇다면 어떻게? 당신이이() 포인트 컷 사용할 수 있습니다
그래서 'o'가 제 방법의 호출자가 될 것입니까? 서버 메소드가 정적 코드에서 호출 되더라도? – JVerstry
@JVerstry : [문서] (http://www.eclipse.org/aspectj/doc/released/progguide/semantics-pointcuts.html)에 'this' 포인트 컷이 정적 컨텍스트의 조인 포인트와 일치하지 않는다고 나와 있습니다 . " –
문서화는 "정적 메서드 실행의 경우에는이 메서드가 없으므로 this()"를 사용하여 캡처 할 수 없다는 것을 의미한다고 생각합니다. –