インターセプター


インターセプターはメソッドをインターセプトし、AOP の中核的な目的を達成するためにメソッドの前後にアスペクト コードを追加する機会を提供します。 Interceptor インターフェイスは、void intercept(Invocation inv) という 1 つのメソッドのみを定義します。以下は簡単な例です:


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 は、インターセプター インターフェイスのインターセプト メソッドの唯一のパラメーターであり、インターセプターで使用するための便利なメソッドを多数提供します。 Invocation のメソッドは次のとおりです:

QQ截图20170206102520.png