public abstract class AbstractBeanFactoryBasedTargetSource extends ObjectSE implements TargetSource, BeanFactoryAware, SerializableSE
BeanFactory
に基づき、Spring が管理する Bean インスタンスに委譲する TargetSource
実装の基本クラス。 たとえば、サブクラスはプロトタイプインスタンスを作成したり、シングルトンターゲットに遅延アクセスしたりできます。具体的な戦略については、LazyInitTargetSource
および AbstractPrototypeBasedTargetSource
のサブクラスを参照してください。
BeanFactory ベースの TargetSources はシリアライズ可能です。これには、現在のターゲットを切断して SingletonTargetSource
に変換することが含まれます。
BeanFactory.getBean(java.lang.String)
, LazyInitTargetSource
, PrototypeTargetSource
, ThreadLocalTargetSource
, CommonsPool2TargetSource
, 直列化された形式 コンストラクターと説明 |
---|
AbstractBeanFactoryBasedTargetSource() |
修飾子と型 | メソッドと説明 |
---|---|
protected void | copyFrom(AbstractBeanFactoryBasedTargetSource other) 他の AbstractBeanFactoryBasedTargetSource オブジェクトから構成をコピーします。 |
boolean | equals(ObjectSE other) |
BeanFactory | getBeanFactory() 所有している BeanFactory を返します。 |
StringSE | getTargetBeanName() ファクトリ内のターゲット Bean の名前を返します。 |
ClassSE<?> | getTargetClass() この TargetSource によって返されるターゲットの型を返します。 |
int | hashCode() |
boolean | isStatic() TargetSource.getTarget() へのすべての呼び出しは同じオブジェクトを返しますか? |
void | releaseTarget(ObjectSE target) TargetSource.getTarget() メソッドから取得した特定のターゲットオブジェクトがあれば解放します。 |
void | setBeanFactory(BeanFactory beanFactory) 所有 BeanFactory を設定します。 |
void | setTargetBeanName(StringSE targetBeanName) ファクトリでターゲット Bean の名前を設定します。 |
void | setTargetClass(ClassSE<?> targetClass) ターゲットクラスを明示的に指定して、ターゲット Bean へのアクセスを回避します(たとえば、FactoryBean インスタンスの初期化を回避します)。 |
StringSE | toString() |
cloneSE, finalizeSE, getClassSE, notifySE, notifyAllSE, waitSE, waitSE, waitSE
getTarget
protected final Log logger
public void setTargetBeanName(StringSE targetBeanName)
ターゲット Bean はシングルトンであってはなりません。そうでなければ、同じインスタンスが常にファクトリから取得され、SingletonTargetSource
によって提供されるのと同じ動作になります。
targetBeanName
- このインターセプターを所有する BeanFactory 内のターゲット Bean の名前 SingletonTargetSource
public StringSE getTargetBeanName()
public void setTargetClass(ClassSE<?> targetClass)
デフォルトでは、BeanFactory の getType
呼び出し(または、フォールバックとしての完全な getBean
呼び出し)によって、型を自動的に検出します。
public void setBeanFactory(BeanFactory beanFactory)
getBean
メソッドを使用できるように、参照を保存する必要があります。BeanFactoryAware
の setBeanFactory
beanFactory
- 所有 BeanFactory(非 null
)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。BeanInitializationException
public BeanFactory getBeanFactory()
public ClassSE<?> getTargetClass()
TargetSource
TargetSource
によって返されるターゲットの型を返します。null
を返すことができますが、TargetSource
の特定の使用箇所は、事前定義されたターゲットクラスでのみ機能する場合があります。
TargetClassAware
の getTargetClass
TargetSource
の getTargetClass
TargetSource
によって返されるターゲットの型 public boolean isStatic()
TargetSource
TargetSource.getTarget()
へのすべての呼び出しは同じオブジェクトを返しますか? その場合、TargetSource.releaseTarget(Object)
を呼び出す必要はなく、AOP フレームワークは TargetSource.getTarget()
の戻り値をキャッシュできます。
TargetSource
の isStatic
true
(ターゲットが不変の場合)TargetSource.getTarget()
public void releaseTarget(ObjectSE target) throws ExceptionSE
TargetSource
TargetSource.getTarget()
メソッドから取得した特定のターゲットオブジェクトがあれば解放します。TargetSource
の releaseTarget
target
- TargetSource.getTarget()
の呼び出しから取得したオブジェクト ExceptionSE
- オブジェクトを解放できない場合 protected void copyFrom(AbstractBeanFactoryBasedTargetSource other)
other
- 設定をコピーするオブジェクト public int hashCode()
ObjectSE
の hashCodeSE
public StringSE toString()
ObjectSE
の toStringSE