org.springframework.beans.factory.annotation

Class InitDestroyAnnotationBeanPostProcessor

  • java.lang.Object
    • org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      int getOrder()
      Get the order value of this object.
      java.lang.Object postProcessAfterInitialization(java.lang.Object bean, java.lang.String beanName)
      Apply this BeanPostProcessor to the given new bean instance after any bean initialization callbacks (like InitializingBean's afterPropertiesSet or a custom init-method).
      void postProcessBeforeDestruction(java.lang.Object bean, java.lang.String beanName)
      Apply this BeanPostProcessor to the given bean instance before its destruction, e.g.
      java.lang.Object postProcessBeforeInitialization(java.lang.Object bean, java.lang.String beanName)
      Apply this BeanPostProcessor to the given new bean instance before any bean initialization callbacks (like InitializingBean's afterPropertiesSet or a custom init-method).
      void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, java.lang.Class<?> beanType, java.lang.String beanName)
      Post-process the given merged bean definition for the specified bean.
      boolean requiresDestruction(java.lang.Object bean)
      Determine whether the given bean instance requires destruction by this post-processor.
      void setDestroyAnnotationType(java.lang.Class<? extends java.lang.annotation.Annotation> destroyAnnotationType)
      Specify the destroy annotation to check for, indicating destruction methods to call when the context is shutting down.
      void setInitAnnotationType(java.lang.Class<? extends java.lang.annotation.Annotation> initAnnotationType)
      Specify the init annotation to check for, indicating initialization methods to call after configuration of a bean.
      void setOrder(int order) 
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • logger

        protected transient Log logger
    • Constructor Detail

      • InitDestroyAnnotationBeanPostProcessor

        public InitDestroyAnnotationBeanPostProcessor()
    • Method Detail

      • setInitAnnotationType

        public void setInitAnnotationType(java.lang.Class<? extends java.lang.annotation.Annotation> initAnnotationType)
        Specify the init annotation to check for, indicating initialization methods to call after configuration of a bean.

        Any custom annotation can be used, since there are no required annotation attributes. There is no default, although a typical choice is the JSR-250 PostConstruct annotation.

      • setDestroyAnnotationType

        public void setDestroyAnnotationType(java.lang.Class<? extends java.lang.annotation.Annotation> destroyAnnotationType)
        Specify the destroy annotation to check for, indicating destruction methods to call when the context is shutting down.

        Any custom annotation can be used, since there are no required annotation attributes. There is no default, although a typical choice is the JSR-250 PreDestroy annotation.

      • setOrder

        public void setOrder(int order)
      • getOrder

        public int getOrder()
        Description copied from interface: Ordered
        Get the order value of this object.

        Higher values are interpreted as lower priority. As a consequence, the object with the lowest value has the highest priority (somewhat analogous to Servlet load-on-startup values).

        Same order values will result in arbitrary sort positions for the affected objects.

        Specified by:
        getOrder in interface Ordered
        Returns:
        the order value
        See Also:
        Ordered.HIGHEST_PRECEDENCE, Ordered.LOWEST_PRECEDENCE
      • postProcessBeforeInitialization

        public java.lang.Object postProcessBeforeInitialization(java.lang.Object bean,
                                                                java.lang.String beanName)
                                                         throws BeansException
        Description copied from interface: BeanPostProcessor
        Apply this BeanPostProcessor to the given new bean instance before any bean initialization callbacks (like InitializingBean's afterPropertiesSet or a custom init-method). The bean will already be populated with property values. The returned bean instance may be a wrapper around the original.

        The default implementation returns the given bean as-is.

        Specified by:
        postProcessBeforeInitialization in interface BeanPostProcessor
        Parameters:
        bean - the new bean instance
        beanName - the name of the bean
        Returns:
        the bean instance to use, either the original or a wrapped one; if null, no subsequent BeanPostProcessors will be invoked
        Throws:
        BeansException - in case of errors
        See Also:
        InitializingBean.afterPropertiesSet()
      • postProcessAfterInitialization

        public java.lang.Object postProcessAfterInitialization(java.lang.Object bean,
                                                               java.lang.String beanName)
                                                        throws BeansException
        Description copied from interface: BeanPostProcessor
        Apply this BeanPostProcessor to the given new bean instance after any bean initialization callbacks (like InitializingBean's afterPropertiesSet or a custom init-method). The bean will already be populated with property values. The returned bean instance may be a wrapper around the original.

        In case of a FactoryBean, this callback will be invoked for both the FactoryBean instance and the objects created by the FactoryBean (as of Spring 2.0). The post-processor can decide whether to apply to either the FactoryBean or created objects or both through corresponding bean instanceof FactoryBean checks.

        This callback will also be invoked after a short-circuiting triggered by a InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(java.lang.Class<?>, java.lang.String) method, in contrast to all other BeanPostProcessor callbacks.

        The default implementation returns the given bean as-is.

        Specified by:
        postProcessAfterInitialization in interface BeanPostProcessor
        Parameters:
        bean - the new bean instance
        beanName - the name of the bean
        Returns:
        the bean instance to use, either the original or a wrapped one; if null, no subsequent BeanPostProcessors will be invoked
        Throws:
        BeansException - in case of errors
        See Also:
        InitializingBean.afterPropertiesSet(), FactoryBean