Class BeanCapableImportCandidate

java.lang.Object
io.microsphere.spring.context.annotation.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 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 Details

    • logger

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

      protected 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 Details

    • BeanCapableImportCandidate

      public BeanCapableImportCandidate()
  • Method Details

    • setBeanClassLoader

      public final void setBeanClassLoader(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 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