public interface TargetSource extends TargetClassAware
TargetSource は、AOP 呼び出しの現在の「ターゲット」を取得するために使用されます。アラウンドアドバイスがインターセプターチェーン自体を終了することを選択しない場合、リフレクションを介して呼び出されます。TargetSource が「静的」である場合、常に同じターゲットを返し、AOP フレームワークでの最適化を可能にします。動的ターゲットソースは、プーリング、ホットスワップなどをサポートできます。
通常、アプリケーション開発者は TargetSources を直接操作する必要はありません。これは AOP フレームワークインターフェースです。
| 修飾子と型 | メソッドと説明 |
|---|---|
ObjectSE | getTarget() ターゲットインスタンスを返します。 |
ClassSE<?> | getTargetClass() この TargetSource によって返されるターゲットの型を返します。 |
boolean | isStatic()getTarget() へのすべての呼び出しは同じオブジェクトを返しますか? |
void | releaseTarget(ObjectSE target)getTarget() メソッドから取得した特定のターゲットオブジェクトがあれば解放します。 |
ClassSE<?> getTargetClass()
TargetSource によって返されるターゲットの型を返します。null を返すことができますが、TargetSource の特定の使用箇所は、事前定義されたターゲットクラスでのみ機能する場合があります。
TargetClassAware の getTargetClass TargetSource によって返されるターゲットの型 boolean isStatic()
getTarget() へのすべての呼び出しは同じオブジェクトを返しますか? その場合、releaseTarget(Object) を呼び出す必要はなく、AOP フレームワークは getTarget() の戻り値をキャッシュできます。
true (ターゲットが不変の場合)getTarget()ObjectSE getTarget() throws ExceptionSE
null ExceptionSE - ターゲットオブジェクトを解決できない場合 void releaseTarget(ObjectSE target) throws ExceptionSE
getTarget() メソッドから取得した特定のターゲットオブジェクトがあれば解放します。target - getTarget() の呼び出しから取得したオブジェクト ExceptionSE - オブジェクトを解放できない場合