public abstract class AbstractLazyCreationTargetSource extends ObjectSE implements TargetSource
TargetSource 実装。 レイジーターゲットオブジェクトの作成は、createObject() メソッドを実装することによってユーザーが制御します。この TargetSource は、プロキシに初めてアクセスしたときにこのメソッドを呼び出します。
オブジェクトへの依存関係への参照を渡す必要があるが、最初に使用するまで依存関係を実際に作成したくない場合に便利です。この典型的なシナリオは、リモートリソースへの接続です。
isInitialized(), createObject()| コンストラクターと説明 |
|---|
AbstractLazyCreationTargetSource() |
| 修飾子と型 | メソッドと説明 |
|---|---|
protected abstract ObjectSE | createObject() サブクラスは、このメソッドを実装して、遅延初期化オブジェクトを返す必要があります。 |
ObjectSE | getTarget() レイジーで初期化されたターゲットオブジェクトを返し、まだ存在しない場合はオンザフライで作成します。 |
ClassSE<?> | getTargetClass() このデフォルトの実装は、ターゲットが null (まだ初期化されていない)の場合は null を返し、ターゲットがすでに初期化されている場合はターゲットクラスを返します。 |
boolean | isInitialized() この TargetSource の遅延ターゲットオブジェクトがすでにフェッチされているかどうかを返します。 |
boolean | isStatic()TargetSource.getTarget() へのすべての呼び出しは同じオブジェクトを返しますか? |
void | releaseTarget(ObjectSE target)TargetSource.getTarget() メソッドから取得した特定のターゲットオブジェクトがあれば解放します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEprotected final Log logger
public boolean isInitialized()
@Nullable public ClassSE<?> 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 ObjectSE getTarget() throws ExceptionSE
TargetSource 内の getTarget null ExceptionSE - ターゲットオブジェクトを解決できない場合 createObject()public void releaseTarget(ObjectSE target) throws ExceptionSE
TargetSourceTargetSource.getTarget() メソッドから取得した特定のターゲットオブジェクトがあれば解放します。TargetSource 内の releaseTarget target - TargetSource.getTarget() の呼び出しから取得したオブジェクト ExceptionSE - オブジェクトを解放できない場合 protected abstract ObjectSE createObject() throws ExceptionSE
ExceptionSE - 作成に失敗した場合