public class LazyInitTargetSourceCreator extends AbstractBeanFactoryBasedTargetSourceCreator
LazyInitTargetSource
を適用する TargetSourceCreator
。これにより、これらの Bean ごとにプロキシが作成され、ターゲット Bean インスタンスを実際に初期化せずにそのような Bean への参照をフェッチできるようになります。 特定の Bean のカスタムインターセプターと組み合わせて、または lazy-init プロキシのみを作成するために、自動プロキシ作成者のカスタム TargetSourceCreator
として登録します。例: XML アプリケーションコンテキスト定義で自動検出されたインフラストラクチャ Bean として:
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="beanNames" value="*" /> <!-- apply to all beans --> <property name="customTargetSourceCreators"> <list> <bean class="org.springframework.aop.framework.autoproxy.target.LazyInitTargetSourceCreator" /> </list> </property> </bean> <bean id="myLazyInitBean" class="mypackage.MyBeanClass" lazy-init="true"> <!-- ... --> </bean>
BeanDefinition.isLazyInit()
, AbstractAutoProxyCreator.setCustomTargetSourceCreators(org.springframework.aop.framework.autoproxy.TargetSourceCreator...)
, BeanNameAutoProxyCreator
logger
コンストラクターと説明 |
---|
LazyInitTargetSourceCreator() |
修飾子と型 | メソッドと説明 |
---|---|
protected AbstractBeanFactoryBasedTargetSource | createBeanFactoryBasedTargetSource(ClassSE<?> beanClass, StringSE beanName) サブクラスは、このメソッドを実装して、この Bean のカスタム TargetSource を作成する場合は新しい AbstractPrototypeBasedTargetSource を返し、関わりがない場合は null を返す必要があります。この場合、特別なターゲットソースは作成されません。 |
protected boolean | isPrototypeBased() この TargetSourceCreator がプロトタイプベースかどうかを返します。 |
buildInternalBeanFactory, destroy, getBeanFactory, getInternalBeanFactoryForBean, getTargetSource, setBeanFactory
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
protected boolean isPrototypeBased()
AbstractBeanFactoryBasedTargetSourceCreator
デフォルトは「true」。
AbstractBeanFactoryBasedTargetSourceCreator
の isPrototypeBased
BeanDefinition.isSingleton()
@Nullable protected AbstractBeanFactoryBasedTargetSource createBeanFactoryBasedTargetSource(ClassSE<?> beanClass, StringSE beanName)
AbstractBeanFactoryBasedTargetSourceCreator
null
を返すためにこのメソッドを実装しなければならず、その場合は特別なターゲットソースは作成されません。サブクラスは、AbstractPrototypeBasedTargetSource 上で setTargetBeanName
や setBeanFactory
を呼び出すべきではありません。このクラスの getTargetSource()
の実装がそれを行います。AbstractBeanFactoryBasedTargetSourceCreator
の createBeanFactoryBasedTargetSource
beanClass
- TargetSource を作成する Bean のクラス beanName
- Bean の名前 null