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
logger
Fields inherited from interface org.springframework.beans.factory.FactoryBean
OBJECT_TYPE_ATTRIBUTE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Eagerly 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.void
setTargetBeanName
(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:AbstractFactoryBean
Eagerly create the singleton instance, if necessary.- Specified by:
afterPropertiesSet
in interfaceInitializingBean
- Overrides:
afterPropertiesSet
in 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:AbstractFactoryBean
This abstract method declaration mirrors the method in the FactoryBean interface, for a consistent offering of abstract template methods.- Specified by:
getObjectType
in interfaceFactoryBean<Provider<Object>>
- Specified by:
getObjectType
in classAbstractFactoryBean<Provider<Object>>
- Returns:
- the type of object that this FactoryBean creates,
or
null
if not known at the time of the call - See Also:
-
createInstance
Description copied from class:AbstractFactoryBean
Template 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:
createInstance
in classAbstractFactoryBean<Provider<Object>>
- Returns:
- the object returned by this factory
- See Also:
-