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, waitSE
protected final Log logger
public boolean isInitialized()
@Nullable public ClassSE<?> getTargetClass()
null
(まだ初期化されていない)の場合は null
を返し、ターゲットがすでに初期化されている場合はターゲットクラスを返します。 ターゲットがまだ null
であるときに意味のある値を提供するために、サブクラスはこのメソッドをオーバーライドしたい場合があります。
TargetClassAware
の getTargetClass
TargetSource
の getTargetClass
TargetSource
によって返されるターゲットの型 isInitialized()
public boolean isStatic()
TargetSource
TargetSource.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
TargetSource
TargetSource.getTarget()
メソッドから取得した特定のターゲットオブジェクトがあれば解放します。TargetSource
の releaseTarget
target
- TargetSource.getTarget()
の呼び出しから取得したオブジェクト ExceptionSE
- オブジェクトを解放できない場合 protected abstract ObjectSE createObject() throws ExceptionSE
ExceptionSE
- 作成に失敗した場合