Class DelegatingFactoryBean

  • All Implemented Interfaces:
    org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.FactoryBean<java.lang.Object>, org.springframework.beans.factory.InitializingBean, org.springframework.context.ApplicationContextAware

    public class DelegatingFactoryBean
    extends java.lang.Object
    implements org.springframework.beans.factory.FactoryBean<java.lang.Object>, org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.DisposableBean, org.springframework.context.ApplicationContextAware, org.springframework.beans.factory.BeanNameAware
    A FactoryBean implementation that delegates to an existing object instance, providing lifecycle management and integration with Spring's ApplicationContext.

    This class is useful when you want to expose an already instantiated object as a Spring bean, while still benefiting from Spring's lifecycle callbacks (e.g., InitializingBean, DisposableBean, etc.).

    Key Features:

    • Delegates bean creation via the getObject() method.
    • Supports initialization through InitializingBean.afterPropertiesSet().
    • Supports destruction callback if the delegate implements DisposableBean.
    • Implements Spring's aware interfaces such as ApplicationContextAware and BeanNameAware, delegating calls to the target object if applicable.

    Usage Example:

    {@code
     MyService myService = new MyServiceImpl();
     DelegatingFactoryBean factoryBean = new DelegatingFactoryBean(myService);
    
     // When used in a Spring configuration:
    Since:
    1.0.0
    Author:
    Mercy
    See Also:
    FactoryBean, InitializingBean, DisposableBean, ApplicationContextAware, BeanNameAware
    • Constructor Detail

      • DelegatingFactoryBean

        public DelegatingFactoryBean​(java.lang.Object delegate)
      • DelegatingFactoryBean

        public DelegatingFactoryBean​(java.lang.Object delegate,
                                     boolean singleton)
    • Method Detail

      • getObject

        public java.lang.Object getObject()
                                   throws java.lang.Exception
        Specified by:
        getObject in interface org.springframework.beans.factory.FactoryBean<java.lang.Object>
        Throws:
        java.lang.Exception
      • getObjectType

        public java.lang.Class<?> getObjectType()
        Specified by:
        getObjectType in interface org.springframework.beans.factory.FactoryBean<java.lang.Object>
      • afterPropertiesSet

        public void afterPropertiesSet()
                                throws java.lang.Exception
        Specified by:
        afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
        Throws:
        java.lang.Exception
      • setApplicationContext

        public void setApplicationContext​(org.springframework.context.ApplicationContext context)
                                   throws org.springframework.beans.BeansException
        Specified by:
        setApplicationContext in interface org.springframework.context.ApplicationContextAware
        Throws:
        org.springframework.beans.BeansException
      • setBeanName

        public void setBeanName​(java.lang.String name)
        Specified by:
        setBeanName in interface org.springframework.beans.factory.BeanNameAware
      • isSingleton

        public boolean isSingleton()
        Specified by:
        isSingleton in interface org.springframework.beans.factory.FactoryBean<java.lang.Object>
      • destroy

        public void destroy()
                     throws java.lang.Exception
        Specified by:
        destroy in interface org.springframework.beans.factory.DisposableBean
        Throws:
        java.lang.Exception