Class ProviderCreatingFactoryBean
- All Implemented Interfaces:
Aware,BeanClassLoaderAware,BeanFactoryAware,DisposableBean,FactoryBean<Provider<Object>>,InitializingBean
FactoryBean implementation that
returns a value which is a JSR-330 Provider that in turn
returns a bean sourced from a BeanFactory.
This is basically a JSR-330 compliant variant of Spring's good old
ObjectFactoryCreatingFactoryBean. It can be used for traditional
external dependency injection configuration that targets a property or
constructor argument of type jakarta.inject.Provider, as an
alternative to JSR-330's @Inject annotation-driven approach.
- Since:
- 3.0.2
- Author:
- Juergen Hoeller
- See Also:
-
Field Summary
Fields inherited from class org.springframework.beans.factory.config.AbstractFactoryBean
loggerFields inherited from interface org.springframework.beans.factory.FactoryBean
OBJECT_TYPE_ATTRIBUTE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidEagerly create the singleton instance, if necessary.Template method that subclasses must override to construct the object returned by this factory.Class<?>This abstract method declaration mirrors the method in the FactoryBean interface, for a consistent offering of abstract template methods.voidsetTargetBeanName(String targetBeanName) Set the name of the target bean.Methods inherited from class org.springframework.beans.factory.config.AbstractFactoryBean
destroy, destroyInstance, getBeanFactory, getBeanTypeConverter, getEarlySingletonInterfaces, getObject, isSingleton, setBeanClassLoader, setBeanFactory, setSingleton
-
Constructor Details
-
ProviderCreatingFactoryBean
public ProviderCreatingFactoryBean()
-
-
Method Details
-
setTargetBeanName
Set the name of the target bean.The target does not have to be a non-singleton bean, but realistically always will be (because if the target bean were a singleton, then said singleton bean could simply be injected straight into the dependent object, thus obviating the need for the extra level of indirection afforded by this factory approach).
-
afterPropertiesSet
Description copied from class:AbstractFactoryBeanEagerly create the singleton instance, if necessary.- Specified by:
afterPropertiesSetin interfaceInitializingBean- Overrides:
afterPropertiesSetin classAbstractFactoryBean<Provider<Object>>- Throws:
Exception- in the event of misconfiguration (such as failure to set an essential property) or if initialization fails for any other reason
-
getObjectType
Description copied from class:AbstractFactoryBeanThis abstract method declaration mirrors the method in the FactoryBean interface, for a consistent offering of abstract template methods.- Specified by:
getObjectTypein interfaceFactoryBean<Provider<Object>>- Specified by:
getObjectTypein classAbstractFactoryBean<Provider<Object>>- Returns:
- the type of object that this FactoryBean creates,
or
nullif not known at the time of the call - See Also:
-
createInstance
Description copied from class:AbstractFactoryBeanTemplate method that subclasses must override to construct the object returned by this factory.Invoked on initialization of this FactoryBean in case of a singleton; else, on each
AbstractFactoryBean.getObject()call.- Specified by:
createInstancein classAbstractFactoryBean<Provider<Object>>- Returns:
- the object returned by this factory
- See Also:
-