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