Class BeanCapableImportCandidate

  • All Implemented Interfaces:
    org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.context.EnvironmentAware, org.springframework.context.ResourceLoaderAware
    Direct Known Subclasses:
    AnnotatedPropertySourceLoader

    public abstract class BeanCapableImportCandidate
    extends java.lang.Object
    implements org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.context.EnvironmentAware, org.springframework.context.ResourceLoaderAware
    The @Import candidate is an instance of ImportSelector or ImportBeanDefinitionRegistrar and not a regular Spring bean, which only invokes BeanClassLoaderAware, BeanFactoryAware, EnvironmentAware, and ResourceLoaderAware contracts in order if they are implemented, thus it will not be populated and initialized .

    The current abstract implementation is a template class supports the Spring bean lifecycles : population, initialization, and destroy, the sub-class must implement the interface ImportSelector or ImportBeanDefinitionRegistrar, and can't override those methods:

    Example Usage

    
     public class MyImportRegistrar extends BeanCapableImportCandidate implements ImportBeanDefinitionRegistrar {
    
         private final Logger logger = getLogger(this.getClass());
    
         public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
             logger.info("Registering beans from custom registrar");
             registry.registerBeanDefinition("myBean", new RootBeanDefinition(MyBean.class));
         }
     }
     
    Since:
    1.0.0
    Author:
    Mercy
    See Also:
    AbstractAutowireCapableBeanFactory.populateBean(String, RootBeanDefinition, BeanWrapper), AutowireCapableBeanFactory.initializeBean(Object, String), ConfigurableBeanFactory.destroyBean(String, Object), ApplicationContextAwareProcessor
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory  
      protected java.lang.ClassLoader classLoader  
      protected org.springframework.core.env.ConfigurableEnvironment environment  
      protected io.microsphere.logging.Logger logger  
      protected org.springframework.core.io.ResourceLoader resourceLoader  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      org.springframework.beans.factory.config.ConfigurableListableBeanFactory getBeanFactory()
      The ConfigurableListableBeanFactory instance
      java.lang.ClassLoader getClassLoader()
      Get the ClassLoader instance
      org.springframework.core.env.ConfigurableEnvironment getEnvironment()
      The ConfigurableEnvironment instance
      org.springframework.core.io.ResourceLoader getResourceLoader()
      The ResourceLoader instance
      void setBeanClassLoader​(java.lang.ClassLoader classLoader)  
      void setBeanFactory​(org.springframework.beans.factory.BeanFactory beanFactory)  
      void setEnvironment​(org.springframework.core.env.Environment environment)  
      void setResourceLoader​(org.springframework.core.io.ResourceLoader resourceLoader)  
      • Methods inherited from class java.lang.Object

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

      • logger

        protected final io.microsphere.logging.Logger logger
      • classLoader

        protected java.lang.ClassLoader classLoader
      • beanFactory

        protected org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory
      • environment

        protected org.springframework.core.env.ConfigurableEnvironment environment
      • resourceLoader

        protected org.springframework.core.io.ResourceLoader resourceLoader
    • Constructor Detail

      • BeanCapableImportCandidate

        public BeanCapableImportCandidate()
    • Method Detail

      • setBeanClassLoader

        public final void setBeanClassLoader​(java.lang.ClassLoader classLoader)
        Specified by:
        setBeanClassLoader in interface org.springframework.beans.factory.BeanClassLoaderAware
      • setBeanFactory

        public final void setBeanFactory​(org.springframework.beans.factory.BeanFactory beanFactory)
                                  throws org.springframework.beans.BeansException
        Specified by:
        setBeanFactory in interface org.springframework.beans.factory.BeanFactoryAware
        Throws:
        org.springframework.beans.BeansException
      • setEnvironment

        public final void setEnvironment​(org.springframework.core.env.Environment environment)
        Specified by:
        setEnvironment in interface org.springframework.context.EnvironmentAware
      • setResourceLoader

        public final void setResourceLoader​(org.springframework.core.io.ResourceLoader resourceLoader)
        Specified by:
        setResourceLoader in interface org.springframework.context.ResourceLoaderAware
      • getClassLoader

        @Nonnull
        public final java.lang.ClassLoader getClassLoader()
        Get the ClassLoader instance
        Returns:
        non-null
      • getBeanFactory

        @Nonnull
        public final org.springframework.beans.factory.config.ConfigurableListableBeanFactory getBeanFactory()
        The ConfigurableListableBeanFactory instance
        Returns:
        non-null
      • getEnvironment

        @Nonnull
        public final org.springframework.core.env.ConfigurableEnvironment getEnvironment()
        The ConfigurableEnvironment instance
        Returns:
        non-null
      • getResourceLoader

        @Nonnull
        public final org.springframework.core.io.ResourceLoader getResourceLoader()
        The ResourceLoader instance
        Returns:
        non-null