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()
TargetSource
TargetSource.getTarget()
へのすべての呼び出しは同じオブジェクトを返しますか? その場合、TargetSource.releaseTarget(Object)
を呼び出す必要はなく、AOP フレームワークは TargetSource.getTarget()
の戻り値をキャッシュできます。
TargetSource
の isStatic
true
(ターゲットが不変の場合)TargetSource.getTarget()
public java.lang.Object getTarget() throws java.lang.Exception
TargetSource
の getTarget
null
java.lang.Exception
- ターゲットオブジェクトを解決できない場合 createObject()
public void releaseTarget(java.lang.Object target) throws java.lang.Exception
TargetSource
TargetSource.getTarget()
メソッドから取得した特定のターゲットオブジェクトがあれば解放します。TargetSource
の releaseTarget
target
- TargetSource.getTarget()
の呼び出しから取得したオブジェクト java.lang.Exception
- オブジェクトを解放できない場合 protected abstract java.lang.Object createObject() throws java.lang.Exception
java.lang.Exception
- 作成に失敗した場合