インターセプターを注入する
Inject インターセプターとは、enhanced または duang メソッドを使用して強化するときにパラメーターを使用して渡されるインターセプターを指します。 Inject は、完全に非侵襲的にターゲットに AOP を適用できます。
拡張する必要があるターゲットが jar パッケージ内にあり、Before アノテーションを使用してインターセプターを設定できない場合は、Injectインターセプターを使用して、jar パッケージ内のターゲットを拡張できます。以下は Inject インターセプターの例です:
public void injectDemo() { // 为enhance方法传入的拦截器称为Inject拦截器,下面代码中的Tx称为Inject拦截器 OrderService service = Enhancer.enhance(OrderService.class, Tx.class); service.payment(…); }
上記のコードの Enhance.enhance() メソッドの 2 番目のパラメーター Tx.class は Inject インターセプターと呼ばれます。これを使用します。 メソッド AOP 強化は、ターゲットに対して完全に非侵襲的に実行できます。
Injectインターセプターは、前述のグローバル、クラス、メソッドレベルのインターセプターと同じレベルの概念です。クラスレベルのインターセプターと同様に、Inject インターセプターは拡張ターゲット内のすべてのメソッドをインターセプトします。 Inject インターセプターはクラス レベルのインターセプターと考えることができますが、実行順序はクラス レベルのインターセプターよりも前です。