인터셉터


Interceptor는 AOP의 핵심 목표를 달성하기 위해 메소드를 가로채서 메소드 전후에 측면 코드를 추가할 수 있는 기회를 제공합니다. 인터셉터 인터페이스는 void Intercept(Invocation inv)라는 하나의 메소드만 정의합니다. 다음은 간단한 예입니다.


public class DemoInterceptor implements Interceptor {
	public void intercept(Invocation inv) { System.out.println("Before method invoking"); inv.invoke();
	System.out.println("After method invoking");
	}
}


위 코드의 DemoInterceptor는 대상 메서드를 가로챕니다. , 대상 메서드 호출 전후에 텍스트를 콘솔에 출력합니다. inv.invoke() 코드 행은 대상 메소드에 대한 호출이며 이 코드 행 앞뒤에 측면 코드를 삽입하여 쉽게 구현할 수 있습니다.



nvocation Interceptor 인터페이스의 Intercept 메소드에 있는 유일한 매개변수로 여러 가지 편리한 기능을 제공합니다. 인터셉터에 사용됩니다. Invocation의 메소드는 다음과 같습니다:

QQ截图20170206102520.png