public abstract class AbstractLazyCreationTargetSource extends java.lang.Object implements TargetSource
TargetSource 実装。 レイジーターゲットオブジェクトの作成は、createObject() メソッドを実装することによってユーザーが制御します。この TargetSource は、プロキシに初めてアクセスしたときにこのメソッドを呼び出します。
オブジェクトへの依存関係への参照を渡す必要があるが、最初に使用するまで依存関係を実際に作成したくない場合に便利です。この典型的なシナリオは、リモートリソースへの接続です。
isInitialized(), createObject()| コンストラクターと説明 |
|---|
AbstractLazyCreationTargetSource() |
| 修飾子と型 | メソッドと説明 |
|---|---|
protected abstract java.lang.Object | createObject() サブクラスは、このメソッドを実装して、遅延初期化オブジェクトを返す必要があります。 |
java.lang.Object | getTarget() レイジーで初期化されたターゲットオブジェクトを返し、まだ存在しない場合はオンザフライで作成します。 |
java.lang.Class<?> | getTargetClass() このデフォルトの実装は、ターゲットが null (まだ初期化されていない)の場合は null を返し、ターゲットがすでに初期化されている場合はターゲットクラスを返します。 |
boolean | isInitialized() この TargetSource の遅延ターゲットオブジェクトがすでにフェッチされているかどうかを返します。 |
boolean | isStatic()TargetSource.getTarget() へのすべての呼び出しは同じオブジェクトを返しますか? |
void | releaseTarget(java.lang.Object target)TargetSource.getTarget() メソッドから取得した特定のターゲットオブジェクトがあれば解放します。 |
protected final Log logger
public boolean isInitialized()
@Nullable public java.lang.Class<?> getTargetClass()
null (まだ初期化されていない)の場合は null を返し、ターゲットがすでに初期化されている場合はターゲットクラスを返します。 ターゲットがまだ null であるときに意味のある値を提供するために、サブクラスはこのメソッドをオーバーライドしたい場合があります。
TargetClassAware 内の getTargetClass TargetSource 内の getTargetClass TargetSource によって返されるターゲットの型 isInitialized()public boolean isStatic()
TargetSourceTargetSource.getTarget() へのすべての呼び出しは同じオブジェクトを返しますか? その場合、TargetSource.releaseTarget(Object) を呼び出す必要はなく、AOP フレームワークは TargetSource.getTarget() の戻り値をキャッシュできます。
TargetSource 内の isStatic true (ターゲットが不変の場合)TargetSource.getTarget()public java.lang.Object getTarget()
throws java.lang.ExceptionTargetSource 内の getTarget null java.lang.Exception - ターゲットオブジェクトを解決できない場合 createObject()public void releaseTarget(java.lang.Object target)
throws java.lang.ExceptionTargetSourceTargetSource.getTarget() メソッドから取得した特定のターゲットオブジェクトがあれば解放します。TargetSource 内の releaseTarget target - TargetSource.getTarget() の呼び出しから取得したオブジェクト java.lang.Exception - オブジェクトを解放できない場合 protected abstract java.lang.Object createObject()
throws java.lang.Exceptionjava.lang.Exception - 作成に失敗した場合