クラス AbstractAutowireCapableBeanFactory
- 実装されたすべてのインターフェース:
BeanFactory
、AutowireCapableBeanFactory
、ConfigurableBeanFactory
、SingletonBeanRegistry
、HierarchicalBeanFactory
、AliasRegistry
- 既知の直属サブクラス
DefaultListableBeanFactory
RootBeanDefinition
クラスで指定されたすべての機能を備えた、デフォルトの Bean 作成を実装する抽象 Bean ファクトリスーパークラス。AbstractBeanFactory の createBean(java.lang.Class<T>)
メソッドに加えて、AutowireCapableBeanFactory
インターフェースを実装します。Bean の作成(コンストラクター解決を使用)、プロパティの設定、接続(オートワイヤーを含む)、初期化を提供します。ランタイム Bean 参照の処理、管理コレクションの解決、初期化メソッドの呼び出しなど。オートワイヤーコンストラクター、名前によるプロパティ、型によるプロパティをサポートします。
サブクラスによって実装される主なテンプレートメソッドは、オートワイヤーに使用される AutowireCapableBeanFactory.resolveDependency(DependencyDescriptor, String, Set, TypeConverter)
です。Bean 定義を検索できる ListableBeanFactory
の場合、通常、一致する Bean はそのような検索を通じて実装されます。それ以外の場合は、簡略化されたマッチングを実装できます。
このクラスは、Bean 定義レジストリ機能を想定または実装しないことに注意してください。ListableBeanFactory
および BeanDefinitionRegistry
インターフェースの実装については、それぞれ DefaultListableBeanFactory
を参照してください。これらは、それぞれそのようなファクトリの API および SPI ビューを表します。
- 導入:
- 13.02.2004
- 作成者:
- Rod Johnson, Juergen Hoeller, Rob Harrop, Mark Fisher, Costin Leau, Chris Beams, Sam Brannen, Phillip Webb
- 関連事項:
フィールドのサマリー
クラス org.springframework.core.SimpleAliasRegistry から継承されたフィールド
logger
インターフェース org.springframework.beans.factory.config.AutowireCapableBeanFactory から継承されたフィールド
AUTOWIRE_AUTODETECT, AUTOWIRE_BY_NAME, AUTOWIRE_BY_TYPE, AUTOWIRE_CONSTRUCTOR, AUTOWIRE_NO, ORIGINAL_INSTANCE_SUFFIX
インターフェース org.springframework.beans.factory.BeanFactory から継承されたフィールド
FACTORY_BEAN_PREFIX
インターフェース org.springframework.beans.factory.config.ConfigurableBeanFactory から継承されたフィールド
SCOPE_PROTOTYPE, SCOPE_SINGLETON
コンストラクターのサマリー
コンストラクターコンストラクター説明新しい AbstractAutowireCapableBeanFactory を作成します。AbstractAutowireCapableBeanFactory
(BeanFactory parentBeanFactory) 指定された親を持つ新しい AbstractAutowireCapableBeanFactory を作成します。メソッドのサマリー
修飾子と型メソッド説明applyBeanPostProcessorsAfterInitialization
(ObjectSE existingBean, StringSE beanName) 使用すべきではありません。applyBeanPostProcessorsBeforeInitialization
(ObjectSE existingBean, StringSE beanName) 使用すべきではありません。protected ObjectSE
applyBeanPostProcessorsBeforeInstantiation
(ClassSE<?> beanClass, StringSE beanName) InstantiationAwareBeanPostProcessors を指定された Bean 定義に(クラスと名前で)適用し、それらのpostProcessBeforeInstantiation
メソッドを呼び出します。void
applyBeanPropertyValues
(ObjectSE existingBean, StringSE beanName) 指定された名前の Bean 定義のプロパティ値を、指定された Bean インスタンスに適用します。protected void
applyMergedBeanDefinitionPostProcessors
(RootBeanDefinition mbd, ClassSE<?> beanType, StringSE beanName) 指定された Bean 定義に MergedBeanDefinitionPostProcessors を適用し、postProcessMergedBeanDefinition
メソッドを呼び出します。protected void
applyPropertyValues
(StringSE beanName, BeanDefinition mbd, BeanWrapper bw, PropertyValues pvs) 指定されたプロパティ値を適用し、この Bean ファクトリ内の他の Bean へのランタイム参照を解決します。指定された autowire 戦略を使用して、指定されたクラスの新しい Bean インスタンスをインスタンス化します。void
autowireBean
(ObjectSE existingBean) インスタンス化後のコールバックと Bean プロパティの後処理 (たとえば、アノテーション駆動型インジェクション) を適用して、指定された Bean インスタンスを設定します。void
autowireBeanProperties
(ObjectSE existingBean, int autowireMode, boolean dependencyCheck) 指定された Bean インスタンスの Bean プロパティを名前または型でオートワイヤーします。protected void
autowireByName
(StringSE beanName, AbstractBeanDefinition mbd, BeanWrapper bw, MutablePropertyValues pvs) autowire が "byName" に設定されている場合、このファクトリ内の他の Bean への参照を使用して、不足しているプロパティ値を入力します。protected void
autowireByType
(StringSE beanName, AbstractBeanDefinition mbd, BeanWrapper bw, MutablePropertyValues pvs) 「型ごとのオートワイヤー」(型ごとの Bean プロパティ)の動作を定義する抽象メソッド。protected BeanWrapper
autowireConstructor
(StringSE beanName, RootBeanDefinition mbd, ConstructorSE<?>[] ctors, ObjectSE[] explicitArgs) 「型ごとのコンストラクター引数を使用した」「オートワイヤーコンストラクター」の動作。protected void
checkDependencies
(StringSE beanName, AbstractBeanDefinition mbd, PropertyDescriptorSE[] pds, PropertyValues pvs) 必要に応じて、公開されているすべてのプロパティが設定されていることを確認する依存関係チェックを実行します。protected void
オーバーライドして FactoryBean インスタンスキャッシュもクリアします。configureBean
(ObjectSE existingBean, StringSE beanName) 指定された生の Bean を構成します: Bean プロパティのオートワイヤー、Bean プロパティ値の適用、setBeanName
やsetBeanFactory
などのファクトリコールバックの適用、およびすべての Bean ポストプロセッサー(特定の生の Bean をラップするものを含む)も適用します。void
copyConfigurationFrom
(ConfigurableBeanFactory otherFactory) 指定された他のファクトリから関連するすべての構成をコピーします。createBean
(ClassSE<?> beanClass, int autowireMode, boolean dependencyCheck) 使用すべきではありません。<T> T
createBean
(ClassSE<T> beanClass) 指定されたクラスの新しい Bean インスタンスを完全に作成します。protected ObjectSE
createBean
(StringSE beanName, RootBeanDefinition mbd, ObjectSE[] args) このクラスの中心的な方法: Bean インスタンスを作成し、Bean インスタンスに入力し、ポストプロセッサーを適用するなど。protected BeanWrapper
createBeanInstance
(StringSE beanName, RootBeanDefinition mbd, ObjectSE[] args) 適切なインスタンス化戦略を使用して、指定された Bean の新しいインスタンスを作成します: ファクトリメソッド、コンストラクターのオートワイヤー、単純なインスタンス化。void
destroyBean
(ObjectSE existingBean) 指定された Bean インスタンス(通常AutowireCapableBeanFactory.createBean(Class)
から取得)を破棄し、DisposableBean
契約と登録済みDestructionAwareBeanPostProcessors
を適用します。protected ConstructorSE<?>[]
determineConstructorsFromBeanPostProcessors
(ClassSE<?> beanClass, StringSE beanName) 登録されたすべてのSmartInstantiationAwareBeanPostProcessors
をチェックして、指定された Bean に使用する候補コンストラクターを決定します。protected ClassSE<?>
determineTargetType
(StringSE beanName, RootBeanDefinition mbd, ClassSE<?>... typesToMatch) 指定された Bean 定義のターゲット型を決定します。protected ObjectSE
doCreateBean
(StringSE beanName, RootBeanDefinition mbd, ObjectSE[] args) 指定された Bean を実際に作成します。protected PropertyDescriptorSE[]
指定された BeanWrapper から PropertyDescriptors のフィルターされたセットを抽出します。無視された依存関係型または無視された依存関係インターフェースで定義されたプロパティは除外します。protected PropertyDescriptorSE[]
filterPropertyDescriptorsForDependencyCheck
(BeanWrapper bw, boolean cache) 指定された BeanWrapper から PropertyDescriptors のフィルターされたセットを抽出します。無視された依存関係型または無視された依存関係インターフェースで定義されたプロパティは除外します。protected ObjectSE
getEarlyBeanReference
(StringSE beanName, RootBeanDefinition mbd, ObjectSE bean) 通常、循環参照を解決するために、指定された Bean に早期にアクセスするための参照を取得します。Bean インスタンスの作成に使用するインスタンス化戦略を返します。protected ObjectSE
getObjectForBeanInstance
(ObjectSE beanInstance, StringSE name, StringSE beanName, RootBeanDefinition mbd) 現在作成されている Bean を、Supplier
SE コールバック中にプログラムで取得される追加の Bean に依存するものとして暗黙的に登録するためにオーバーライドされます。必要に応じて、メソッドパラメーター名の解決に使用する ParameterNameDiscoverer を返します。protected ResolvableType
getTypeForFactoryBean
(StringSE beanName, RootBeanDefinition mbd, boolean allowInit) この実装は、FactoryBean のジェネリクスパラメーターメタデータ(存在する場合)を照会して、オブジェクト型を判別しようとします。protected ClassSE<?>
getTypeForFactoryMethod
(StringSE beanName, RootBeanDefinition mbd, ClassSE<?>... typesToMatch) ファクトリメソッドに基づいて、指定された Bean 定義のターゲット型を決定します。void
ignoreDependencyInterface
(ClassSE<?> ifc) オートワイヤーの指定された依存関係インターフェースを無視します。void
ignoreDependencyType
(ClassSE<?> type) オートワイヤーの指定された依存関係型(たとえば、String)を無視します。initializeBean
(ObjectSE existingBean, StringSE beanName) setBeanName
やsetBeanFactory
などのファクトリコールバックを適用し、すべての Bean ポストプロセッサー(指定された raw Bean をラップするものを含む)も適用して、指定された raw Bean を初期化します。protected ObjectSE
initializeBean
(StringSE beanName, ObjectSE bean, RootBeanDefinition mbd) 指定された Bean インスタンスを初期化し、ファクトリコールバックと init メソッドおよび Bean ポストプロセッサーを適用します。protected BeanWrapper
instantiateBean
(StringSE beanName, RootBeanDefinition mbd) デフォルトのコンストラクターを使用して、指定された Bean をインスタンス化します。protected BeanWrapper
instantiateUsingFactoryMethod
(StringSE beanName, RootBeanDefinition mbd, ObjectSE[] explicitArgs) 名前付きファクトリメソッドを使用して Bean をインスタンス化します。protected void
invokeCustomInitMethod
(StringSE beanName, ObjectSE bean, RootBeanDefinition mbd, StringSE initMethodName) 指定された Bean で指定されたカスタム init メソッドを呼び出します。protected void
invokeInitMethods
(StringSE beanName, ObjectSE bean, RootBeanDefinition mbd) すべてのプロパティが設定された後で Bean にそれ自体を初期化する機会と、その所有する Bean ファクトリ (このオブジェクト) について知る機会を与えます。boolean
Bean 間の循環参照を許可するかどうかを返します。boolean
Bean インスタンスの raw インジェクションを許可するかどうかを返します。protected boolean
指定された Bean プロパティが依存関係チェックから除外されるかどうかを決定します。protected ObjectSE
obtainInstanceFromSupplier
(SupplierSE<?> supplier, StringSE beanName, RootBeanDefinition mbd) 指定されたサプライヤーから Bean インスタンスを取得します。protected void
populateBean
(StringSE beanName, RootBeanDefinition mbd, BeanWrapper bw) 指定された BeanWrapper の Bean インスタンスに、Bean 定義からのプロパティ値を取り込みます。protected ObjectSE
postProcessObjectFromFactoryBean
(ObjectSE object, StringSE beanName) 登録されたすべての BeanPostProcessors のpostProcessAfterInitialization
コールバックを適用し、FactoryBeans から取得したオブジェクトを後処理する(たとえば、自動プロキシする)機会を与えます。protected ClassSE<?>
predictBeanType
(StringSE beanName, RootBeanDefinition mbd, ClassSE<?>... typesToMatch) 指定された Bean の(処理された Bean インスタンスの)最終的な Bean 型を予測します。protected void
removeSingleton
(StringSE beanName) オーバーライドして FactoryBean インスタンスキャッシュもクリアします。resolveBeanByName
(StringSE name, DependencyDescriptor descriptor) 指定された Bean 名の Bean インスタンスを解決し、ターゲットファクトリメソッドに公開するための依存関係記述子を提供します。protected ObjectSE
resolveBeforeInstantiation
(StringSE beanName, RootBeanDefinition mbd) インスタンス化前のポストプロセッサーを適用し、指定された Bean のインスタンス化前のショートカットがあるかどうかを解決します。resolveDependency
(DependencyDescriptor descriptor, StringSE requestingBeanName) このファクトリで定義された Bean に対する指定された依存関係を解決します。void
setAllowCircularReferences
(boolean allowCircularReferences) Bean 間の循環参照を許可するかどうかを設定し、自動的に解決しようとします。void
setAllowRawInjectionDespiteWrapping
(boolean allowRawInjectionDespiteWrapping) 注入された Bean が最終的にラップされる場合(たとえば、AOP 自動プロキシ経由)にも関わらず、他の Bean のプロパティへの Bean インスタンスの生の注入を許可するかどうかを設定します。void
setInstantiationStrategy
(InstantiationStrategy instantiationStrategy) Bean インスタンスの作成に使用するインスタンス化戦略を設定します。void
setParameterNameDiscoverer
(ParameterNameDiscoverer parameterNameDiscoverer) 必要に応じて、メソッドパラメーター名を解決するために使用する ParameterNameDiscoverer を設定します (たとえば、コンストラクター名の場合)。protected StringSE[]
満たされていない非シンプルな Bean プロパティの配列を返します。クラス org.springframework.beans.factory.support.AbstractBeanFactory から継承されたメソッド
addBeanPostProcessor, addBeanPostProcessors, addEmbeddedValueResolver, addPropertyEditorRegistrar, afterPrototypeCreation, beforePrototypeCreation, checkMergedBeanDefinition, cleanupAfterBeanCreationFailure, clearMergedBeanDefinition, clearMetadataCache, containsBean, containsBeanDefinition, containsLocalBean, copyRegisteredEditorsTo, destroyBean, destroyBean, destroyScopedBean, doGetBean, evaluateBeanDefinitionString, getAliases, getApplicationStartup, getBean, getBean, getBean, getBean, getBeanClassLoader, getBeanDefinition, getBeanExpressionResolver, getBeanPostProcessorCount, getBeanPostProcessors, getConversionService, getCustomEditors, getCustomTypeConverter, getMergedBeanDefinition, getMergedBeanDefinition, getMergedBeanDefinition, getMergedLocalBeanDefinition, getParentBeanFactory, getPropertyEditorRegistrars, getRegisteredScope, getRegisteredScopeNames, getTempClassLoader, getType, getType, getTypeConverter, hasBeanCreationStarted, hasDestructionAwareBeanPostProcessors, hasEmbeddedValueResolver, hasInstantiationAwareBeanPostProcessors, initBeanWrapper, isActuallyInCreation, isBeanEligibleForMetadataCaching, isBeanNameInUse, isCacheBeanMetadata, isFactoryBean, isFactoryBean, isPrototype, isPrototypeCurrentlyInCreation, isSingleton, isTypeMatch, isTypeMatch, isTypeMatch, markBeanAsCreated, originalBeanName, registerCustomEditor, registerCustomEditors, registerDisposableBeanIfNecessary, registerScope, removeSingletonIfCreatedForTypeCheckOnly, requiresDestruction, resolveBeanClass, resolveEmbeddedValue, setApplicationStartup, setBeanClassLoader, setBeanExpressionResolver, setCacheBeanMetadata, setConversionService, setParentBeanFactory, setTempClassLoader, setTypeConverter, transformedBeanName
クラス org.springframework.beans.factory.support.FactoryBeanRegistrySupport から継承されたメソッド
getCachedObjectForFactoryBean, getFactoryBean, getObjectFromFactoryBean, getTypeForFactoryBean
クラス org.springframework.beans.factory.support.DefaultSingletonBeanRegistry から継承されたメソッド
addSingleton, addSingletonCallback, addSingletonFactory, afterSingletonCreation, beforeSingletonCreation, containsSingleton, destroyBean, destroySingleton, destroySingletons, getDependenciesForBean, getDependentBeans, getSingleton, getSingleton, getSingleton, getSingletonCount, getSingletonMutex, getSingletonNames, hasDependentBean, isCurrentlyInCreation, isCurrentThreadAllowedToHoldSingletonLock, isDependent, isSingletonCurrentlyInCreation, onSuppressedException, registerContainedBean, registerDependentBean, registerDisposableBean, registerSingleton, setCurrentlyInCreation
クラス org.springframework.core.SimpleAliasRegistry から継承されたメソッド
allowAliasOverriding, canonicalName, checkForAliasCircle, hasAlias, isAlias, registerAlias, removeAlias, resolveAliases
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース org.springframework.beans.factory.config.AutowireCapableBeanFactory から継承されたメソッド
resolveDependency, resolveNamedBean
インターフェース org.springframework.beans.factory.BeanFactory から継承されたメソッド
containsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getBeanProvider, getBeanProvider, getType, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatch
インターフェース org.springframework.beans.factory.config.ConfigurableBeanFactory から継承されたメソッド
destroySingletons, getBootstrapExecutor, getDependenciesForBean, getDependentBeans, isCurrentlyInCreation, registerAlias, registerDependentBean, resolveAliases, setBootstrapExecutor, setCurrentlyInCreation
インターフェース org.springframework.beans.factory.config.SingletonBeanRegistry から継承されたメソッド
addSingletonCallback, containsSingleton, getSingleton, getSingletonCount, getSingletonMutex, getSingletonNames, registerSingleton
コンストラクターの詳細
AbstractAutowireCapableBeanFactory
public AbstractAutowireCapableBeanFactory()新しい AbstractAutowireCapableBeanFactory を作成します。AbstractAutowireCapableBeanFactory
指定された親を持つ新しい AbstractAutowireCapableBeanFactory を作成します。- パラメーター:
parentBeanFactory
- 親 Bean ファクトリ、または存在しない場合はnull
メソッドの詳細
setInstantiationStrategy
Bean インスタンスの作成に使用するインスタンス化戦略を設定します。デフォルトは CglibSubclassingInstantiationStrategy です。getInstantiationStrategy
Bean インスタンスの作成に使用するインスタンス化戦略を返します。setParameterNameDiscoverer
必要に応じて、メソッドパラメーター名を解決するために使用する ParameterNameDiscoverer を設定します (たとえば、コンストラクター名の場合)。デフォルトは
DefaultParameterNameDiscoverer
です。getParameterNameDiscoverer
必要に応じて、メソッドパラメーター名の解決に使用する ParameterNameDiscoverer を返します。setAllowCircularReferences
public void setAllowCircularReferences(boolean allowCircularReferences) Bean 間の循環参照を許可するかどうかを設定し、自動的に解決しようとします。循環参照解決は、関係する Bean の 1 つが、まだ完全に初期化されていない別の Bean への参照を受け取ることに注意してください。これにより、初期化に微妙な副作用が生じる可能性があります。ただし、多くのシナリオでうまく機能します。
デフォルトは "true" です。これをオフにすると、循環参照が発生したときに例外がスローされ、完全に許可されなくなります。
注意 : Bean 間の循環参照に依存しないことをお勧めします。アプリケーションロジックをリファクタリングして、関連する 2 つの Bean を、それらの共通ロジックをカプセル化する 3 番目の Bean に委譲します。
isAllowCircularReferences
public boolean isAllowCircularReferences()Bean 間の循環参照を許可するかどうかを返します。- 導入:
- 5.3.10
- 関連事項:
setAllowRawInjectionDespiteWrapping
public void setAllowRawInjectionDespiteWrapping(boolean allowRawInjectionDespiteWrapping) 注入された Bean が最終的にラップされる場合(たとえば、AOP 自動プロキシ経由)にも関わらず、他の Bean のプロパティへの Bean インスタンスの生の注入を許可するかどうかを設定します。これは、他の方法では解決できない循環参照の場合の最後の手段としてのみ使用されます。基本的に、Bean 接続プロセス全体の障害よりも生のインスタンスを挿入することを優先します。
Spring 2.0 では、デフォルトは "false" です。これをオンにすると、ラップされていない生の Bean が一部の参照に挿入されます。これは、Spring 1.2 の(おそらくクリーンではない)デフォルトの動作でした。
注意 : 一般に、特に自動プロキシを使用する場合は、Bean 間の循環参照に依存しないことをお勧めします。
isAllowRawInjectionDespiteWrapping
public boolean isAllowRawInjectionDespiteWrapping()Bean インスタンスの raw インジェクションを許可するかどうかを返します。- 導入:
- 5.3.10
- 関連事項:
ignoreDependencyType
オートワイヤーの指定された依存関係型(たとえば、String)を無視します。デフォルトはなしです。ignoreDependencyInterface
オートワイヤーの指定された依存関係インターフェースを無視します。通常、これは、BeanFactory から BeanFactoryAware または ApplicationContext から ApplicationContextAware など、他の方法で解決される依存関係を登録するために、アプリケーションコンテキストによって使用されます。
デフォルトでは、BeanFactoryAware インターフェースのみが無視されます。さらに無視する型については、型ごとにこのメソッドを呼び出します。
copyConfigurationFrom
インターフェースからコピーされた説明:ConfigurableBeanFactory
指定された他のファクトリから関連するすべての構成をコピーします。BeanPostProcessors、スコープ、ファクトリ固有の内部設定だけでなく、すべての標準構成設定を含める必要があります。BeanDefinition オブジェクトや Bean 名のエイリアスなど、実際の Bean 定義のメタデータを含めないでください。
- 次で指定:
- インターフェース
ConfigurableBeanFactory
のcopyConfigurationFrom
- オーバーライド:
- クラス
AbstractBeanFactory
のcopyConfigurationFrom
- パラメーター:
otherFactory
- コピー元のもう 1 つの BeanFactory
createBean
インターフェースからコピーされた説明:AutowireCapableBeanFactory
指定されたクラスの新しい Bean インスタンスを完全に作成します。適用可能なすべての
BeanPostProcessors
を含む、Bean の完全な初期化を実行します。メモ: これは、新しいインスタンスを作成し、アノテーション付きのフィールドとメソッドを設定し、すべての標準 Bean 初期化コールバックを適用することを目的としています。コンストラクターの解決は、Kotlin プライマリ / 単一のパブリック / 単一の非パブリックに基づいており、あいまいなシナリオではデフォルトコンストラクターにフォールバックし、
SmartInstantiationAwareBeanPostProcessor.determineCandidateConstructors(java.lang.Class<?>, java.lang.String)
の影響も受けます (たとえば、アノテーション駆動型のコンストラクターの選択)。- 次で指定:
- インターフェース
AutowireCapableBeanFactory
のcreateBean
- パラメーター:
beanClass
- 作成する Bean のクラス- 戻り値:
- 新しい Bean インスタンス
- 例外:
BeansException
- インスタンス化または接続が失敗した場合
autowireBean
インターフェースからコピーされた説明:AutowireCapableBeanFactory
インスタンス化後のコールバックと Bean プロパティの後処理 (たとえば、アノテーション駆動型インジェクション) を適用して、指定された Bean インスタンスを設定します。メモ: これは基本的に、新しいインスタンスまたは非直列化されたインスタンスのいずれかのために、アノテーション付きのフィールドとメソッドを(再)入力することを目的としています。これは 、従来の名前によるプロパティや型によるプロパティのオートワイヤーを意味するものではありません。これらの目的には
AutowireCapableBeanFactory.autowireBeanProperties(java.lang.Object, int, boolean)
を使用してください。- 次で指定:
- インターフェース
AutowireCapableBeanFactory
のautowireBean
- パラメーター:
existingBean
- 既存の Bean インスタンス
configureBean
インターフェースからコピーされた説明:AutowireCapableBeanFactory
指定された生の Bean を構成します: Bean プロパティのオートワイヤー、Bean プロパティ値の適用、setBeanName
やsetBeanFactory
などのファクトリコールバックの適用、およびすべての Bean ポストプロセッサー(特定の生の Bean をラップするものを含む)も適用します。これは実質的に
AutowireCapableBeanFactory.initializeBean(java.lang.Object, java.lang.String)
が提供するもののスーパーセットであり、対応する Bean 定義で指定された構成を完全に適用します。 注: このメソッドには、指定された名前の Bean 定義が必要です!- 次で指定:
- インターフェース
AutowireCapableBeanFactory
のconfigureBean
- パラメーター:
existingBean
- 既存の Bean インスタンスbeanName
- Bean の名前、必要に応じて渡される (その名前の Bean 定義が利用可能でなければなりません)- 戻り値:
- 使用する Bean インスタンス、元のインスタンスまたはラップされたインスタンス
- 例外:
NoSuchBeanDefinitionException
- 指定された名前の Bean 定義がない場合BeansException
- 初期化が失敗した場合- 関連事項:
createBean
@DeprecatedSE public ObjectSE createBean(ClassSE<?> beanClass, int autowireMode, boolean dependencyCheck) throws BeansException 使用すべきではありません。インターフェースからコピーされた説明:AutowireCapableBeanFactory
指定されたオートワイヤー戦略を使用して、指定されたクラスの新しい Bean インスタンスを完全に作成します。このインターフェースで定義されているすべての定数は、ここでサポートされています。適用可能なすべての
BeanPostProcessors
を含む、Bean の完全な初期化を実行します。これは事実上、AutowireCapableBeanFactory.autowire(java.lang.Class<?>, int, boolean)
が提供するもののスーパーセットであり、AutowireCapableBeanFactory.initializeBean(java.lang.Object, java.lang.String)
の動作を追加します。- 次で指定:
- インターフェース
AutowireCapableBeanFactory
のcreateBean
- パラメーター:
beanClass
- 作成する Bean のクラスautowireMode
- このインターフェースの定数を使用して、名前または型dependencyCheck
- オブジェクトの依存性チェックを実行するかどうか (コンストラクターのオートワイヤーには適用されないため、そこで無視されます)- 戻り値:
- 新しい Bean インスタンス
- 例外:
BeansException
- インスタンス化または接続が失敗した場合- 関連事項:
autowire
public ObjectSE autowire(ClassSE<?> beanClass, int autowireMode, boolean dependencyCheck) throws BeansException インターフェースからコピーされた説明:AutowireCapableBeanFactory
指定されたオートワイヤー戦略を使用して、指定されたクラスの新しい Bean インスタンスをインスタンス化します。このインターフェースで定義されているすべての定数がここでサポートされます。インスタンス化前のコールバックを適用するためだけにAUTOWIRE_NO
で呼び出すこともできます (たとえば、アノテーション駆動型インジェクションの場合)。標準の
BeanPostProcessors
コールバックを適用せず、Bean のさらなる初期化を実行しません。このインターフェースは、これらの目的のために、たとえばAutowireCapableBeanFactory.initializeBean(java.lang.Object, java.lang.String)
のような、きめ細かい操作を提供します。ただし、インスタンスの構築に適用可能な場合は、InstantiationAwareBeanPostProcessor
コールバックが適用されます。- 次で指定:
- インターフェース
AutowireCapableBeanFactory
のautowire
- パラメーター:
beanClass
- インスタンス化する Bean のクラスautowireMode
- このインターフェースの定数を使用して、名前または型dependencyCheck
- Bean インスタンス内のオブジェクト参照の依存性チェックを実行するかどうか (コンストラクターのオートワイヤーには適用されないため、そこで無視されます)- 戻り値:
- 新しい Bean インスタンス
- 例外:
BeansException
- インスタンス化または接続が失敗した場合- 関連事項:
AutowireCapableBeanFactory.AUTOWIRE_NO
AutowireCapableBeanFactory.AUTOWIRE_BY_NAME
AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE
AutowireCapableBeanFactory.AUTOWIRE_CONSTRUCTOR
AutowireCapableBeanFactory.AUTOWIRE_AUTODETECT
AutowireCapableBeanFactory.initializeBean(java.lang.Object, java.lang.String)
AutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(java.lang.Object, java.lang.String)
AutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(java.lang.Object, java.lang.String)
autowireBeanProperties
public void autowireBeanProperties(ObjectSE existingBean, int autowireMode, boolean dependencyCheck) throws BeansException インターフェースからコピーされた説明:AutowireCapableBeanFactory
指定された Bean インスタンスの Bean プロパティを名前または型でオートワイヤーします。インスタンス化後のコールバックを適用するためだけにAUTOWIRE_NO
で呼び出すこともできます (たとえば、アノテーション駆動型インジェクションの場合)。標準の
BeanPostProcessors
コールバックを適用せず、Bean のさらなる初期化を実行しません。このインターフェースは、これらの目的のために、たとえばAutowireCapableBeanFactory.initializeBean(java.lang.Object, java.lang.String)
のような、きめ細かい操作を提供します。ただし、インスタンスの構成に該当する場合は、InstantiationAwareBeanPostProcessor
コールバックが適用されます。- 次で指定:
- インターフェース
AutowireCapableBeanFactory
のautowireBeanProperties
- パラメーター:
existingBean
- 既存の Bean インスタンスautowireMode
- このインターフェースの定数を使用して、名前または型dependencyCheck
- Bean インスタンス内のオブジェクト参照の依存性チェックを実行するかどうか- 例外:
BeansException
- 接続に失敗した場合- 関連事項:
applyBeanPropertyValues
インターフェースからコピーされた説明:AutowireCapableBeanFactory
指定された名前の Bean 定義のプロパティ値を、指定された Bean インスタンスに適用します。Bean 定義は、完全に自己完結型の Bean を定義して、そのプロパティ値を再利用するか、既存の Bean インスタンスに使用することを意図したプロパティ値のみを定義できます。このメソッドは 、 Bean プロパティをオートワイヤーしません。明示的に定義されたプロパティ値を適用するだけです。
AutowireCapableBeanFactory.autowireBeanProperties(java.lang.Object, int, boolean)
メソッドを使用して、既存の Bean インスタンスをオートワイヤーします。 注: このメソッドには、指定された名前の Bean 定義が必要です!標準の
BeanPostProcessors
コールバックを適用せず、Bean のさらなる初期化を実行しません。このインターフェースは、これらの目的のために、たとえばAutowireCapableBeanFactory.initializeBean(java.lang.Object, java.lang.String)
のような、きめ細かい操作を提供します。ただし、インスタンスの構成に該当する場合は、InstantiationAwareBeanPostProcessor
コールバックが適用されます。- 次で指定:
- インターフェース
AutowireCapableBeanFactory
のapplyBeanPropertyValues
- パラメーター:
existingBean
- 既存の Bean インスタンスbeanName
- Bean ファクトリ内の Bean 定義の名前 (その名前の Bean 定義が利用可能でなければなりません)- 例外:
NoSuchBeanDefinitionException
- 指定された名前の Bean 定義がない場合BeansException
- プロパティ値の適用に失敗した場合- 関連事項:
initializeBean
インターフェースからコピーされた説明:AutowireCapableBeanFactory
setBeanName
やsetBeanFactory
などのファクトリコールバックを適用し、すべての Bean ポストプロセッサー(指定された raw Bean をラップするものを含む)も適用して、指定された raw Bean を初期化します。指定された名前の Bean 定義が Bean ファクトリに存在する必要はないことに注意してください。渡された Bean 名は単にコールバックに使用されますが、登録された Bean 定義に対してはチェックされません。
- 次で指定:
- インターフェース
AutowireCapableBeanFactory
のinitializeBean
- パラメーター:
existingBean
- 既存の Bean インスタンスbeanName
- Bean の名前、必要に応じて渡される (BeanPostProcessors
にのみ渡されます。指定されたインスタンスを強制的に返すためにAutowireCapableBeanFactory.ORIGINAL_INSTANCE_SUFFIX
規則に従うことができます。つまり、プロキシなどはありません。)- 戻り値:
- 使用する Bean インスタンス、元のインスタンスまたはラップされたインスタンス
- 関連事項:
applyBeanPostProcessorsBeforeInitialization
@DeprecatedSE(since="6.1") public ObjectSE applyBeanPostProcessorsBeforeInitialization(ObjectSE existingBean, StringSE beanName) throws BeansException 使用すべきではありません。インターフェースからコピーされた説明:AutowireCapableBeanFactory
指定された既存の Bean インスタンスにBeanPostProcessors
を適用し、postProcessBeforeInitialization
メソッドを呼び出します。返された Bean インスタンスは、元のラッパーの可能性があります。- 次で指定:
- インターフェース
AutowireCapableBeanFactory
のapplyBeanPostProcessorsBeforeInitialization
- パラメーター:
existingBean
- 既存の Bean インスタンスbeanName
- Bean の名前、必要に応じて渡される (BeanPostProcessors
にのみ渡されます。指定されたインスタンスを強制的に返すためにAutowireCapableBeanFactory.ORIGINAL_INSTANCE_SUFFIX
規則に従うことができます。つまり、プロキシなどはありません。)- 戻り値:
- 使用する Bean インスタンス、元のインスタンスまたはラップされたインスタンス
- 例外:
BeansException
- 後処理が失敗した場合- 関連事項:
applyBeanPostProcessorsAfterInitialization
@DeprecatedSE(since="6.1") public ObjectSE applyBeanPostProcessorsAfterInitialization(ObjectSE existingBean, StringSE beanName) throws BeansException 使用すべきではありません。インターフェースからコピーされた説明:AutowireCapableBeanFactory
指定された既存の Bean インスタンスにBeanPostProcessors
を適用し、postProcessAfterInitialization
メソッドを呼び出します。返された Bean インスタンスは、元のラッパーの可能性があります。- 次で指定:
- インターフェース
AutowireCapableBeanFactory
のapplyBeanPostProcessorsAfterInitialization
- パラメーター:
existingBean
- 既存の Bean インスタンスbeanName
- Bean の名前、必要に応じて渡される (BeanPostProcessors
にのみ渡されます。指定されたインスタンスを強制的に返すためにAutowireCapableBeanFactory.ORIGINAL_INSTANCE_SUFFIX
規則に従うことができます。つまり、プロキシなどはありません。)- 戻り値:
- 使用する Bean インスタンス、元のインスタンスまたはラップされたインスタンス
- 例外:
BeansException
- 後処理が失敗した場合- 関連事項:
destroyBean
インターフェースからコピーされた説明:AutowireCapableBeanFactory
指定された Bean インスタンス(通常AutowireCapableBeanFactory.createBean(Class)
から取得)を破棄し、DisposableBean
契約と登録済みDestructionAwareBeanPostProcessors
を適用します。破棄中に発生した例外は、このメソッドの呼び出し元に伝播するのではなく、キャッチしてログに記録する必要があります。
- 次で指定:
- インターフェース
AutowireCapableBeanFactory
のdestroyBean
- パラメーター:
existingBean
- 破棄する Bean インスタンス
resolveBeanByName
インターフェースからコピーされた説明:AutowireCapableBeanFactory
指定された Bean 名の Bean インスタンスを解決し、ターゲットファクトリメソッドに公開するための依存関係記述子を提供します。これは事実上、
InjectionPoint
引数を持つファクトリメソッドをサポートするBeanFactory.getBean(String, Class)
のバリアントです。- 次で指定:
- インターフェース
AutowireCapableBeanFactory
のresolveBeanByName
- パラメーター:
name
- 検索する Bean の名前descriptor
- リクエストしているインジェクションポイントの依存性記述子- 戻り値:
- 対応する Bean インスタンス
- 関連事項:
resolveDependency
@Nullable public ObjectSE resolveDependency(DependencyDescriptor descriptor, @Nullable StringSE requestingBeanName) throws BeansException インターフェースからコピーされた説明:AutowireCapableBeanFactory
このファクトリで定義された Bean に対する指定された依存関係を解決します。- 次で指定:
- インターフェース
AutowireCapableBeanFactory
のresolveDependency
- パラメーター:
descriptor
- 依存関係の記述子 (フィールド / メソッド / コンストラクター)requestingBeanName
- 指定された依存関係を宣言する Bean の名前- 戻り値:
- 解決されたオブジェクト。見つからない場合は
null
- 例外:
NoSuchBeanDefinitionException
- 一致する Bean が見つからなかった場合NoUniqueBeanDefinitionException
- 一致する Bean が複数見つかった場合BeansException
- 他の理由で依存関係の解決に失敗した場合- 関連事項:
createBean
protected ObjectSE createBean(StringSE beanName, RootBeanDefinition mbd, @Nullable ObjectSE[] args) throws BeanCreationException このクラスの中心的な方法: Bean インスタンスを作成し、Bean インスタンスに入力し、ポストプロセッサーを適用するなど。- 次で指定:
- クラス
AbstractBeanFactory
のcreateBean
- パラメーター:
beanName
- Bean の名前mbd
- Bean のマージされた Bean 定義args
- コンストラクターまたはファクトリメソッドの呼び出しに使用する明示的な引数- 戻り値:
- Bean の新しいインスタンス
- 例外:
BeanCreationException
- Bean を作成できなかった場合- 関連事項:
doCreateBean
protected ObjectSE doCreateBean(StringSE beanName, RootBeanDefinition mbd, @Nullable ObjectSE[] args) throws BeanCreationException 指定された Bean を実際に作成します。こでは、postProcessBeforeInstantiation
コールバックのチェックなど、作成前の処理はすでに行われています。デフォルトの Bean インスタンス化、ファクトリメソッドの使用、コンストラクターのオートワイヤーを区別します。
- パラメーター:
beanName
- Bean の名前mbd
- Bean のマージされた Bean 定義args
- コンストラクターまたはファクトリメソッドの呼び出しに使用する明示的な引数- 戻り値:
- Bean の新しいインスタンス
- 例外:
BeanCreationException
- Bean を作成できなかった場合- 関連事項:
instantiateBean(java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition)
instantiateUsingFactoryMethod(java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition, java.lang.Object[])
autowireConstructor(java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition, java.lang.reflect.Constructor<?>[], java.lang.Object[])
predictBeanType
@Nullable protected ClassSE<?> predictBeanType(StringSE beanName, RootBeanDefinition mbd, ClassSE<?>... typesToMatch) クラスからコピーされた説明:AbstractBeanFactory
指定された Bean の(処理された Bean インスタンスの)最終的な Bean 型を予測します。AbstractBeanFactory.getType(java.lang.String)
およびAbstractBeanFactory.isTypeMatch(java.lang.String, org.springframework.core.ResolvableType)
によって呼び出されます。FactoryBeans は未加工の Bean 型でのみ動作することになっているため、特に FactoryBeans を処理する必要はありません。この実装は、ファクトリメソッドと InstantiationAwareBeanPostProcessors を処理できないという点で単純化されています。標準 Bean の場合、Bean 型のみを正しく予測します。サブクラスでオーバーライドされ、より高度な型検出を適用します。
- オーバーライド:
- クラス
AbstractBeanFactory
のpredictBeanType
- パラメーター:
beanName
- Bean の名前mbd
- 型を決定するマージされた Bean 定義typesToMatch
- 内部型マッチングの目的の場合に一致する型 (また、返されたClass
がアプリケーションコードに公開されないことを通知します)- 戻り値:
- Bean の型、または予測できない場合は
null
determineTargetType
@Nullable protected ClassSE<?> determineTargetType(StringSE beanName, RootBeanDefinition mbd, ClassSE<?>... typesToMatch) 指定された Bean 定義のターゲット型を決定します。- パラメーター:
beanName
- Bean の名前 (エラー処理のため)mbd
- Bean のマージされた Bean 定義typesToMatch
- 内部型マッチングの目的の場合に一致する型 (また、返されたClass
がアプリケーションコードに公開されないことを通知します)- 戻り値:
- 判定可能な場合は Bean の型、そうでない場合は
null
getTypeForFactoryMethod
@Nullable protected ClassSE<?> getTypeForFactoryMethod(StringSE beanName, RootBeanDefinition mbd, ClassSE<?>... typesToMatch) ファクトリメソッドに基づいて、指定された Bean 定義のターゲット型を決定します。ターゲット Bean に登録されているシングルトンインスタンスがない場合にのみ呼び出されます。この実装は、
createBean(java.lang.Class<T>)
のさまざまな作成戦略に一致する型を決定します。可能な限り、静的な型チェックを実行して、ターゲット Bean の作成を回避します。- パラメーター:
beanName
- Bean の名前 (エラー処理のため)mbd
- Bean のマージされた Bean 定義typesToMatch
- 内部型マッチングの目的の場合に一致する型 (また、返されたClass
がアプリケーションコードに公開されないことを通知します)- 戻り値:
- 判定可能な場合は Bean の型、そうでない場合は
null
- 関連事項:
getTypeForFactoryBean
protected ResolvableType getTypeForFactoryBean(StringSE beanName, RootBeanDefinition mbd, boolean allowInit) この実装は、オブジェクト型を判別するために、存在する場合は FactoryBean のジェネリクスパラメーターメタデータを照会しようとします。存在しない場合、つまり FactoryBean が raw 型として宣言されている場合は、Bean プロパティがまだ適用されていない FactoryBean のプレーンインスタンスで FactoryBean のgetObjectType
メソッドをチェックします。これがまだ型を返さず、allowInit
がtrue
である場合は、フォールバックとして FactoryBean の完全な作成が試行されます (スーパークラスの実装への委譲を通じて)。FactoryBean のショートカットチェックは、シングルトン FactoryBean の場合にのみ適用されます。FactoryBean インスタンス自体がシングルトンとして保持されていない場合、完全に作成されて、公開されたオブジェクトの型をチェックします。
- オーバーライド:
- クラス
AbstractBeanFactory
のgetTypeForFactoryBean
- パラメーター:
beanName
- Bean の名前mbd
- Bean のマージされた Bean 定義allowInit
- 型を別の方法で判別できない場合に FactoryBean の初期化が許可されている場合- 戻り値:
- 決定可能な場合は Bean の型、それ以外の場合は
ResolvableType.NONE
- 関連事項:
getEarlyBeanReference
通常、循環参照を解決するために、指定された Bean に早期にアクセスするための参照を取得します。- パラメーター:
beanName
- Bean の名前 (エラー処理のため)mbd
- Bean のマージされた Bean 定義bean
- 生の Bean インスタンス- 戻り値:
- Bean 参照として公開するオブジェクト
applyMergedBeanDefinitionPostProcessors
protected void applyMergedBeanDefinitionPostProcessors(RootBeanDefinition mbd, ClassSE<?> beanType, StringSE beanName) 指定された Bean 定義に MergedBeanDefinitionPostProcessors を適用し、postProcessMergedBeanDefinition
メソッドを呼び出します。- パラメーター:
mbd
- Bean のマージされた Bean 定義beanType
- 管理対象 Bean インスタンスの実際の型beanName
- Bean の名前- 関連事項:
resolveBeforeInstantiation
インスタンス化前のポストプロセッサーを適用し、指定された Bean のインスタンス化前のショートカットがあるかどうかを解決します。- パラメーター:
beanName
- Bean の名前mbd
- Bean の Bean 定義- 戻り値:
- ショートカットで決定された Bean インスタンス。存在しない場合は
null
applyBeanPostProcessorsBeforeInstantiation
@Nullable protected ObjectSE applyBeanPostProcessorsBeforeInstantiation(ClassSE<?> beanClass, StringSE beanName) InstantiationAwareBeanPostProcessors を指定された Bean 定義に(クラスと名前で)適用し、それらのpostProcessBeforeInstantiation
メソッドを呼び出します。返されたオブジェクトは、実際にターゲット Bean をインスタンス化する代わりに、Bean として使用されます。ポストプロセッサーからの
null
戻り値により、ターゲット Bean がインスタンス化されます。- パラメーター:
beanClass
- インスタンス化される Bean のクラスbeanName
- Bean の名前- 戻り値:
- ターゲット Bean または
null
のデフォルトインスタンスの代わりに使用する Bean オブジェクト - 関連事項:
createBeanInstance
protected BeanWrapper createBeanInstance(StringSE beanName, RootBeanDefinition mbd, @Nullable ObjectSE[] args) 適切なインスタンス化戦略を使用して、指定された Bean の新しいインスタンスを作成します: ファクトリメソッド、コンストラクターのオートワイヤー、単純なインスタンス化。- パラメーター:
beanName
- Bean の名前mbd
- Bean の Bean 定義args
- コンストラクターまたはファクトリメソッドの呼び出しに使用する明示的な引数- 戻り値:
- 新しいインスタンスの BeanWrapper
- 関連事項:
obtainFromSupplier(java.util.function.Supplier<?>, java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition)
instantiateUsingFactoryMethod(java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition, java.lang.Object[])
autowireConstructor(java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition, java.lang.reflect.Constructor<?>[], java.lang.Object[])
instantiateBean(java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition)
obtainInstanceFromSupplier
@Nullable protected ObjectSE obtainInstanceFromSupplier(SupplierSE<?> supplier, StringSE beanName, RootBeanDefinition mbd) throws ExceptionSE 指定されたサプライヤーから Bean インスタンスを取得します。- パラメーター:
supplier
- 構成されたサプライヤーbeanName
- 対応する Bean 名mbd
- Bean の Bean 定義- 戻り値:
- Bean インスタンス (おそらく
null
) - 例外:
ExceptionSE
- 導入:
- 6.0.7
getObjectForBeanInstance
protected ObjectSE getObjectForBeanInstance(ObjectSE beanInstance, StringSE name, StringSE beanName, @Nullable RootBeanDefinition mbd) 現在作成されている Bean を、Supplier
SE コールバック中にプログラムで取得される追加の Bean に依存するものとして暗黙的に登録するためにオーバーライドされます。- オーバーライド:
- クラス
AbstractBeanFactory
のgetObjectForBeanInstance
- パラメーター:
beanInstance
- 共有 Bean インスタンスname
- ファクトリ逆参照接頭辞を含む可能性がある名前beanName
- 正規の Bean 名mbd
- マージされた Bean 定義- 戻り値:
- Bean に公開するオブジェクト
- 導入:
- 5.0
- 関連事項:
obtainFromSupplier(java.util.function.Supplier<?>, java.lang.String, org.springframework.beans.factory.support.RootBeanDefinition)
determineConstructorsFromBeanPostProcessors
@Nullable protected ConstructorSE<?>[] determineConstructorsFromBeanPostProcessors(@Nullable ClassSE<?> beanClass, StringSE beanName) throws BeansException 登録されたすべてのSmartInstantiationAwareBeanPostProcessors
をチェックして、指定された Bean に使用する候補コンストラクターを決定します。- パラメーター:
beanClass
- Bean の生のクラスbeanName
- Bean の名前- 戻り値:
- 候補コンストラクター、または何も指定されていない場合は
null
- 例外:
BeansException
- エラーの場合- 関連事項:
instantiateBean
デフォルトのコンストラクターを使用して、指定された Bean をインスタンス化します。- パラメーター:
beanName
- Bean の名前mbd
- Bean の Bean 定義- 戻り値:
- 新しいインスタンスの BeanWrapper
instantiateUsingFactoryMethod
protected BeanWrapper instantiateUsingFactoryMethod(StringSE beanName, RootBeanDefinition mbd, @Nullable ObjectSE[] explicitArgs) 名前付きファクトリメソッドを使用して Bean をインスタンス化します。mbd パラメーターが factoryBean ではなくクラスを指定している場合、または依存性注入を使用して構成されたファクトリオブジェクト自体のインスタンス変数を指定している場合、メソッドは静的になることがあります。- パラメーター:
beanName
- Bean の名前mbd
- Bean の Bean 定義explicitArgs
- getBean メソッドを介してプログラム的に渡される引数値、または存在しない場合はnull
(Bean 定義からのコンストラクター引数値の使用を意味します)- 戻り値:
- 新しいインスタンスの BeanWrapper
- 関連事項:
autowireConstructor
protected BeanWrapper autowireConstructor(StringSE beanName, RootBeanDefinition mbd, @Nullable ConstructorSE<?>[] ctors, @Nullable ObjectSE[] explicitArgs) 「autowire コンストラクター」(型別のコンストラクター引数を使用)の動作。明示的なコンストラクター引数値が指定されている場合にも適用され、残りのすべての引数を Bean ファクトリの Bean と照合します。これはコンストラクターインジェクションに対応します。このモードでは、Spring Bean ファクトリは、コンストラクターベースの依存関係の解決を期待するコンポーネントをホストできます。
- パラメーター:
beanName
- Bean の名前mbd
- Bean の Bean 定義ctors
- 選択された候補コンストラクターexplicitArgs
- getBean メソッドを介してプログラム的に渡される引数値、または存在しない場合はnull
(Bean 定義からのコンストラクター引数値の使用を意味します)- 戻り値:
- 新しいインスタンスの BeanWrapper
populateBean
指定された BeanWrapper の Bean インスタンスに、Bean 定義からのプロパティ値を取り込みます。- パラメーター:
beanName
- Bean の名前mbd
- Bean の Bean 定義bw
- BeanWrapper と Bean インスタンス
autowireByName
protected void autowireByName(StringSE beanName, AbstractBeanDefinition mbd, BeanWrapper bw, MutablePropertyValues pvs) autowire が "byName" に設定されている場合、このファクトリ内の他の Bean への参照を使用して、不足しているプロパティ値を入力します。- パラメーター:
beanName
- 接続している Bean の名前。メッセージのデバッグに役立ちます。関数には使用されません。mbd
- オートワイヤーを通じて更新する Bean 定義bw
- Bean に関する情報を取得できる BeanWrapperpvs
- ワイヤードオブジェクトを登録する PropertyValues
autowireByType
protected void autowireByType(StringSE beanName, AbstractBeanDefinition mbd, BeanWrapper bw, MutablePropertyValues pvs) 「型ごとのオートワイヤー」(型ごとの Bean プロパティ)の動作を定義する抽象メソッド。これは PicoContainer のデフォルトに似ており、Bean ファクトリにはプロパティ型の Bean が 1 つだけ存在する必要があります。これにより、Bean ファクトリは小さな名前空間の構成が簡単になりますが、より大きなアプリケーションの標準の Spring の動作と同じようには機能しません。
- パラメーター:
beanName
- 型ごとにオートワイヤーする Bean の名前mbd
- オートワイヤーを通じて更新するためのマージされた Bean 定義bw
- Bean に関する情報を取得できる BeanWrapperpvs
- ワイヤードオブジェクトを登録する PropertyValues
unsatisfiedNonSimpleProperties
満たされていない単純でない Bean プロパティの配列を返します。これらはおそらく、ファクトリ内の他の Bean への不十分な参照です。プリミティブや文字列などの単純なプロパティは含まれません。- パラメーター:
mbd
- Bean が作成されたマージ済み Bean 定義bw
- BeanWrapper Bean は- 戻り値:
- Bean プロパティ名の配列
- 関連事項:
filterPropertyDescriptorsForDependencyCheck
protected PropertyDescriptorSE[] filterPropertyDescriptorsForDependencyCheck(BeanWrapper bw, boolean cache) 指定された BeanWrapper から PropertyDescriptors のフィルターされたセットを抽出します。無視された依存関係型または無視された依存関係インターフェースで定義されたプロパティは除外します。- パラメーター:
bw
- BeanWrapper Bean はcache
- 指定された Bean クラスのフィルタリングされた PropertyDescriptors をキャッシュするかどうか- 戻り値:
- フィルターされた PropertyDescriptors
- 関連事項:
filterPropertyDescriptorsForDependencyCheck
指定された BeanWrapper から PropertyDescriptors のフィルターされたセットを抽出します。無視された依存関係型または無視された依存関係インターフェースで定義されたプロパティは除外します。- パラメーター:
bw
- BeanWrapper Bean は- 戻り値:
- フィルターされた PropertyDescriptors
- 関連事項:
isExcludedFromDependencyCheck
指定された Bean プロパティが依存関係チェックから除外されるかどうかを決定します。この実装は、CGLIB によって定義されたプロパティと、無視された依存関係型と一致する型のプロパティ、または無視された依存関係インターフェースによって定義されたプロパティを除外します。
- パラメーター:
pd
- Bean プロパティの PropertyDescriptor- 戻り値:
- Bean プロパティが除外されるかどうか
- 関連事項:
checkDependencies
protected void checkDependencies(StringSE beanName, AbstractBeanDefinition mbd, PropertyDescriptorSE[] pds, @Nullable PropertyValues pvs) throws UnsatisfiedDependencyException 必要に応じて、公開されているすべてのプロパティが設定されていることを確認します。依存関係のチェックには、オブジェクト(協調 Bean)、単純(プリミティブと文字列)、すべて(両方)があります。- パラメーター:
beanName
- Bean の名前mbd
- Bean が作成されたマージ済み Bean 定義pds
- ターゲット Bean に関連するプロパティ記述子pvs
- Bean に適用されるプロパティ値- 例外:
UnsatisfiedDependencyException
- 関連事項:
applyPropertyValues
protected void applyPropertyValues(StringSE beanName, BeanDefinition mbd, BeanWrapper bw, PropertyValues pvs) 指定されたプロパティ値を適用し、この Bean ファクトリ内の他の Bean へのランタイム参照を解決します。ディープコピーを使用する必要があるため、このプロパティを永続的に変更しません。- パラメーター:
beanName
- より良い例外情報のために渡された Bean 名mbd
- マージされた Bean 定義bw
- ターゲットオブジェクトをラップする BeanWrapperpvs
- 新しいプロパティ値
initializeBean
protected ObjectSE initializeBean(StringSE beanName, ObjectSE bean, @Nullable RootBeanDefinition mbd) 指定された Bean インスタンスを初期化し、ファクトリコールバックと init メソッドおよび Bean ポストプロセッサーを適用します。従来から定義されている Bean の場合は
createBean(java.lang.Class<T>)
から、既存の Bean インスタンスの場合はinitializeBean(java.lang.Object, java.lang.String)
から呼び出されます。- パラメーター:
beanName
- ファクトリでの Bean の名前 (デバッグ用)bean
- 初期化する必要がある新しい Bean インスタンスmbd
- Bean が作成された Bean 定義 (既存の Bean インスタンスが指定されている場合は、null
にすることもできます)- 戻り値:
- 初期化された Bean インスタンス (潜在的に包まれた)
- 関連事項:
BeanNameAware
BeanClassLoaderAware
BeanFactoryAware
applyBeanPostProcessorsBeforeInitialization(java.lang.Object, java.lang.String)
invokeInitMethods(java.lang.String, java.lang.Object, org.springframework.beans.factory.support.RootBeanDefinition)
applyBeanPostProcessorsAfterInitialization(java.lang.Object, java.lang.String)
invokeInitMethods
protected void invokeInitMethods(StringSE beanName, ObjectSE bean, @Nullable RootBeanDefinition mbd) throws ThrowableSE すべてのプロパティが設定された後で Bean にそれ自体を初期化する機会と、その所有する Bean ファクトリ (このオブジェクト) について知る機会を与えます。これは、Bean が
InitializingBean
を実装しているか、カスタム init メソッドを定義しているかどうかを確認し、実装している場合は必要なコールバックを呼び出すことを意味します。- パラメーター:
beanName
- ファクトリでの Bean の名前 (デバッグ用)bean
- 初期化する必要がある新しい Bean インスタンスmbd
- Bean が作成されたマージ済み Bean 定義 (既存の Bean インスタンスが指定されている場合は、null
にすることもできます)- 例外:
ThrowableSE
- init メソッドまたは呼び出しプロセスによってスローされた場合- 関連事項:
invokeCustomInitMethod
protected void invokeCustomInitMethod(StringSE beanName, ObjectSE bean, RootBeanDefinition mbd, StringSE initMethodName) throws ThrowableSE 指定された Bean で指定されたカスタム init メソッドを呼び出します。invokeInitMethods(String, Object, RootBeanDefinition)
によって呼び出されます。引数付きの init メソッドのカスタム解決のためにサブクラスでオーバーライドできます。
postProcessObjectFromFactoryBean
登録されたすべての BeanPostProcessors のpostProcessAfterInitialization
コールバックを適用し、FactoryBeans から取得したオブジェクトを後処理する(たとえば、自動プロキシする)機会を与えます。- オーバーライド:
- クラス
FactoryBeanRegistrySupport
のpostProcessObjectFromFactoryBean
- パラメーター:
object
- FactoryBean から取得したオブジェクト。beanName
- Bean の名前- 戻り値:
- 公開するオブジェクト
- 関連事項:
removeSingleton
オーバーライドして FactoryBean インスタンスキャッシュもクリアします。- オーバーライド:
- クラス
FactoryBeanRegistrySupport
のremoveSingleton
- パラメーター:
beanName
- Bean の名前
clearSingletonCache
protected void clearSingletonCache()オーバーライドして FactoryBean インスタンスキャッシュもクリアします。- オーバーライド:
- クラス
FactoryBeanRegistrySupport
のclearSingletonCache