Class ProviderCreatingFactoryBean

java.lang.Object
org.springframework.beans.factory.config.AbstractFactoryBean<jakarta.inject.Provider<Object>>
org.springframework.beans.factory.config.ProviderCreatingFactoryBean
All Implemented Interfaces:
Aware, BeanClassLoaderAware, BeanFactoryAware, DisposableBean, FactoryBean<jakarta.inject.Provider<Object>>, InitializingBean

public class ProviderCreatingFactoryBean extends AbstractFactoryBean<jakarta.inject.Provider<Object>>
A 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:
  • Constructor Details

    • ProviderCreatingFactoryBean

      public ProviderCreatingFactoryBean()
  • Method Details

    • setTargetBeanName

      public void setTargetBeanName(String targetBeanName)
      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

      public void afterPropertiesSet() throws Exception
      Description copied from class: AbstractFactoryBean
      Eagerly create the singleton instance, if necessary.
      Specified by:
      afterPropertiesSet in interface InitializingBean
      Overrides:
      afterPropertiesSet in class AbstractFactoryBean<jakarta.inject.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

      public Class<?> 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 interface FactoryBean<jakarta.inject.Provider<Object>>
      Specified by:
      getObjectType in class AbstractFactoryBean<jakarta.inject.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

      protected jakarta.inject.Provider<Object> 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 class AbstractFactoryBean<jakarta.inject.Provider<Object>>
      Returns:
      the object returned by this factory
      See Also: