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