Class GenericBeanPostProcessorAdapter<T>

  • Type Parameters:
    T - the type of beans this post-processor will operate on
    All Implemented Interfaces:
    org.springframework.beans.factory.config.BeanPostProcessor
    Direct Known Subclasses:
    InterceptingApplicationEventMulticasterProxy

    public abstract class GenericBeanPostProcessorAdapter<T>
    extends java.lang.Object
    implements org.springframework.beans.factory.config.BeanPostProcessor
    Generic adapter implementation of the BeanPostProcessor interface, providing type-safe processing for beans of a specific type. This class simplifies the development of typed BeanPostProcessor implementations by allowing subclasses to handle only the bean types they are interested in.

    Subclasses can override either the pre / post initialization hook methods (processBeforeInitialization(Object, String) and processAfterInitialization(Object, String)) if they wish to perform processing without returning a modified bean instance, or the more advanced doPostProcessBeforeInitialization(Object, String) and doPostProcessAfterInitialization(Object, String) methods if they need to return a modified bean instance.

    Example Usage

    
     public class MyBeanPostProcessor extends GenericBeanPostProcessorAdapter<MyBean> {
         protected void processBeforeInitialization(MyBean bean, String beanName) {
             // Custom logic before bean initialization
         }
    
         protected void processAfterInitialization(MyBean bean, String beanName) {
             // Custom logic after bean initialization
         }
     }
     
    Since:
    1.0.0
    Author:
    Mercy
    See Also:
    BeanPostProcessor
    • Constructor Detail

      • GenericBeanPostProcessorAdapter

        public GenericBeanPostProcessorAdapter()
    • Method Detail

      • postProcessBeforeInitialization

        public final java.lang.Object postProcessBeforeInitialization​(java.lang.Object bean,
                                                                      java.lang.String beanName)
                                                               throws org.springframework.beans.BeansException
        Specified by:
        postProcessBeforeInitialization in interface org.springframework.beans.factory.config.BeanPostProcessor
        Throws:
        org.springframework.beans.BeansException
      • postProcessAfterInitialization

        public final java.lang.Object postProcessAfterInitialization​(java.lang.Object bean,
                                                                     java.lang.String beanName)
                                                              throws org.springframework.beans.BeansException
        Specified by:
        postProcessAfterInitialization in interface org.springframework.beans.factory.config.BeanPostProcessor
        Throws:
        org.springframework.beans.BeansException
      • getBeanType

        public final java.lang.Class<T> getBeanType()
        Bean Type
        Returns:
        Bean Type
      • doPostProcessBeforeInitialization

        protected T doPostProcessBeforeInitialization​(T bean,
                                                      java.lang.String beanName)
                                               throws org.springframework.beans.BeansException
        Adapter BeanPostProcessor#postProcessBeforeInitialization(Object, String) method , sub-type could override this method.
        Parameters:
        bean - Bean Object
        beanName - Bean Name
        Returns:
        Bean Object
        Throws:
        org.springframework.beans.BeansException
        See Also:
        BeanPostProcessor.postProcessBeforeInitialization(Object, String)
      • doPostProcessAfterInitialization

        protected T doPostProcessAfterInitialization​(T bean,
                                                     java.lang.String beanName)
                                              throws org.springframework.beans.BeansException
        Adapter BeanPostProcessor#postProcessAfterInitialization(Object, String) method , sub-type could override this method.
        Parameters:
        bean - Bean Object
        beanName - Bean Name
        Returns:
        Bean Object
        Throws:
        org.springframework.beans.BeansException
        See Also:
        BeanPostProcessor.postProcessAfterInitialization(Object, String)
      • processBeforeInitialization

        protected void processBeforeInitialization​(T bean,
                                                   java.lang.String beanName)
                                            throws org.springframework.beans.BeansException
        Process Bean with name without return value before initialization,

        This method will be invoked by BeanPostProcessor#postProcessBeforeInitialization(Object, String)

        Parameters:
        bean - Bean Object
        beanName - Bean Name
        Throws:
        org.springframework.beans.BeansException - in case of errors
      • processAfterInitialization

        protected void processAfterInitialization​(T bean,
                                                  java.lang.String beanName)
                                           throws org.springframework.beans.BeansException
        Process Bean with name without return value after initialization,

        This method will be invoked by BeanPostProcessor#postProcessAfterInitialization(Object, String)

        Parameters:
        bean - Bean Object
        beanName - Bean Name
        Throws:
        org.springframework.beans.BeansException - in case of errors