Class FactoryBeanRegistrySupport
java.lang.Object
org.springframework.core.SimpleAliasRegistry
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry
org.springframework.beans.factory.support.FactoryBeanRegistrySupport
- All Implemented Interfaces:
SingletonBeanRegistry,AliasRegistry
- Direct Known Subclasses:
AbstractBeanFactory
Support base class for singleton registries which need to handle
FactoryBean instances,
integrated with DefaultSingletonBeanRegistry's singleton management.
Serves as base class for AbstractBeanFactory.
- Since:
- 2.5.1
- Author:
- Juergen Hoeller
-
Field Summary
Fields inherited from class org.springframework.core.SimpleAliasRegistry
logger -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidOverridden to clear the FactoryBean object cache as well.protected ObjectgetCachedObjectForFactoryBean(String beanName) Obtain an object to expose from the given FactoryBean, if available in cached form.protected FactoryBean<?>getFactoryBean(String beanName, Object beanInstance) Get a FactoryBean for the given bean if possible.protected ObjectgetObjectFromFactoryBean(FactoryBean<?> factory, String beanName, boolean shouldPostProcess) Obtain an object to expose from the given FactoryBean.protected Class<?>getTypeForFactoryBean(FactoryBean<?> factoryBean) Determine the type for the given FactoryBean.protected ObjectpostProcessObjectFromFactoryBean(Object object, String beanName) Post-process the given object that has been obtained from the FactoryBean.protected voidremoveSingleton(String beanName) Overridden to clear the FactoryBean object cache as well.Methods inherited from class org.springframework.beans.factory.support.DefaultSingletonBeanRegistry
addSingleton, addSingletonFactory, afterSingletonCreation, beforeSingletonCreation, containsSingleton, destroyBean, destroySingleton, destroySingletons, getDependenciesForBean, getDependentBeans, getSingleton, getSingleton, getSingleton, getSingletonCount, getSingletonMutex, getSingletonNames, hasDependentBean, isActuallyInCreation, isCurrentlyInCreation, isDependent, isSingletonCurrentlyInCreation, onSuppressedException, registerContainedBean, registerDependentBean, registerDisposableBean, registerSingleton, setCurrentlyInCreationMethods inherited from class org.springframework.core.SimpleAliasRegistry
allowAliasOverriding, canonicalName, checkForAliasCircle, getAliases, hasAlias, isAlias, registerAlias, removeAlias, resolveAliases
-
Constructor Details
-
FactoryBeanRegistrySupport
public FactoryBeanRegistrySupport()
-
-
Method Details
-
getTypeForFactoryBean
Determine the type for the given FactoryBean.- Parameters:
factoryBean- the FactoryBean instance to check- Returns:
- the FactoryBean's object type,
or
nullif the type cannot be determined yet
-
getCachedObjectForFactoryBean
Obtain an object to expose from the given FactoryBean, if available in cached form. Quick check for minimal synchronization.- Parameters:
beanName- the name of the bean- Returns:
- the object obtained from the FactoryBean,
or
nullif not available
-
getObjectFromFactoryBean
protected Object getObjectFromFactoryBean(FactoryBean<?> factory, String beanName, boolean shouldPostProcess) Obtain an object to expose from the given FactoryBean.- Parameters:
factory- the FactoryBean instancebeanName- the name of the beanshouldPostProcess- whether the bean is subject to post-processing- Returns:
- the object obtained from the FactoryBean
- Throws:
BeanCreationException- if FactoryBean object creation failed- See Also:
-
postProcessObjectFromFactoryBean
protected Object postProcessObjectFromFactoryBean(Object object, String beanName) throws BeansException Post-process the given object that has been obtained from the FactoryBean. The resulting object will get exposed for bean references.The default implementation simply returns the given object as-is. Subclasses may override this, for example, to apply post-processors.
- Parameters:
object- the object obtained from the FactoryBean.beanName- the name of the bean- Returns:
- the object to expose
- Throws:
BeansException- if any post-processing failed
-
getFactoryBean
Get a FactoryBean for the given bean if possible.- Parameters:
beanName- the name of the beanbeanInstance- the corresponding bean instance- Returns:
- the bean instance as FactoryBean
- Throws:
BeansException- if the given bean cannot be exposed as a FactoryBean
-
removeSingleton
Overridden to clear the FactoryBean object cache as well.- Overrides:
removeSingletonin classDefaultSingletonBeanRegistry- Parameters:
beanName- the name of the bean- See Also:
-
clearSingletonCache
protected void clearSingletonCache()Overridden to clear the FactoryBean object cache as well.- Overrides:
clearSingletonCachein classDefaultSingletonBeanRegistry
-