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, waitSEgetTargetprotected final Log logger
public void setTargetBeanName(StringSE targetBeanName)
ターゲット Bean はシングルトンであってはなりません。そうでなければ、同じインスタンスが常にファクトリから取得され、SingletonTargetSource によって提供されるのと同じ動作になります。
targetBeanName - このインターセプターを所有する BeanFactory 内のターゲット Bean の名前 SingletonTargetSourcepublic StringSE getTargetBeanName()
public void setTargetClass(ClassSE<?> targetClass)
デフォルトでは、BeanFactory の getType 呼び出し(または、フォールバックとしての完全な getBean 呼び出し)によって、型を自動的に検出します。
public void setBeanFactory(BeanFactory beanFactory)
getBean メソッドを使用できるように、参照を保存する必要があります。BeanFactoryAware 内の setBeanFactory beanFactory - 所有 BeanFactory(非 null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。BeanInitializationExceptionpublic BeanFactory getBeanFactory()
public ClassSE<?> getTargetClass()
TargetSourceTargetSource によって返されるターゲットの型を返します。null を返すことができますが、TargetSource の特定の使用箇所は、事前定義されたターゲットクラスでのみ機能する場合があります。
TargetClassAware 内の getTargetClass TargetSource 内の getTargetClass TargetSource によって返されるターゲットの型 public boolean isStatic()
TargetSourceTargetSource.getTarget() へのすべての呼び出しは同じオブジェクトを返しますか? その場合、TargetSource.releaseTarget(Object) を呼び出す必要はなく、AOP フレームワークは TargetSource.getTarget() の戻り値をキャッシュできます。
TargetSource 内の isStatic true (ターゲットが不変の場合)TargetSource.getTarget()public void releaseTarget(ObjectSE target) throws ExceptionSE
TargetSourceTargetSource.getTarget() メソッドから取得した特定のターゲットオブジェクトがあれば解放します。TargetSource 内の releaseTarget target - TargetSource.getTarget() の呼び出しから取得したオブジェクト ExceptionSE - オブジェクトを解放できない場合 protected void copyFrom(AbstractBeanFactoryBasedTargetSource other)
other - 設定をコピーするオブジェクト public int hashCode()
ObjectSE の hashCodeSE public StringSE toString()
ObjectSE の toStringSE