public class ConfigurationClassPostProcessor extends Object implements org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor, org.springframework.core.PriorityOrdered, ResourceLoaderAware, org.springframework.beans.factory.BeanClassLoaderAware, EnvironmentAware
BeanFactoryPostProcessor used for bootstrapping processing of
 @Configuration classes.
 Registered by default when using <context:annotation-config/> or
 <context:component-scan/>. Otherwise, may be declared manually as
 with any other BeanFactoryPostProcessor.
 
This post processor is priority-ordered as it is important that any
 Bean methods declared in @Configuration classes have
 their corresponding bean definitions registered before any other
 BeanFactoryPostProcessor executes.
| Modifier and Type | Field and Description | 
|---|---|
| static AnnotationBeanNameGenerator | IMPORT_BEAN_NAME_GENERATORA  BeanNameGeneratorusing fully qualified class names as default bean names. | 
| Constructor and Description | 
|---|
| ConfigurationClassPostProcessor() | 
| Modifier and Type | Method and Description | 
|---|---|
| void | enhanceConfigurationClasses(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)Post-processes a BeanFactory in search of Configuration class BeanDefinitions;
 any candidates are then enhanced by a  ConfigurationClassEnhancer. | 
| int | getOrder() | 
| void | postProcessBeanDefinitionRegistry(org.springframework.beans.factory.support.BeanDefinitionRegistry registry)Derive further bean definitions from the configuration classes in the registry. | 
| void | postProcessBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)Prepare the Configuration classes for servicing bean requests at runtime
 by replacing them with CGLIB-enhanced subclasses. | 
| void | processConfigBeanDefinitions(org.springframework.beans.factory.support.BeanDefinitionRegistry registry)Build and validate a configuration model based on the registry of
  Configurationclasses. | 
| void | setBeanClassLoader(ClassLoader beanClassLoader) | 
| void | setBeanNameGenerator(org.springframework.beans.factory.support.BeanNameGenerator beanNameGenerator)Set the  BeanNameGeneratorto be used when triggering component scanning
 fromConfigurationclasses and when registeringImport'ed
 configuration classes. | 
| void | setEnvironment(org.springframework.core.env.Environment environment)Set the  Environmentthat this component runs in. | 
| void | setMetadataReaderFactory(org.springframework.core.type.classreading.MetadataReaderFactory metadataReaderFactory)Set the  MetadataReaderFactoryto use. | 
| void | setProblemReporter(org.springframework.beans.factory.parsing.ProblemReporter problemReporter)Set the  ProblemReporterto use. | 
| void | setResourceLoader(org.springframework.core.io.ResourceLoader resourceLoader)Set the ResourceLoader that this object runs in. | 
| void | setSourceExtractor(org.springframework.beans.factory.parsing.SourceExtractor sourceExtractor)Set the  SourceExtractorto use for generated bean definitions
 that correspond toBeanfactory methods. | 
public static final AnnotationBeanNameGenerator IMPORT_BEAN_NAME_GENERATOR
BeanNameGenerator using fully qualified class names as default bean names.
 This default for configuration-level import purposes may be overridden through
 setBeanNameGenerator(org.springframework.beans.factory.support.BeanNameGenerator). Note that the default for component scanning purposes
 is a plain AnnotationBeanNameGenerator.INSTANCE, unless overridden through
 setBeanNameGenerator(org.springframework.beans.factory.support.BeanNameGenerator) with a unified user-level bean name generator.
setBeanNameGenerator(org.springframework.beans.factory.support.BeanNameGenerator)public int getOrder()
getOrder in interface org.springframework.core.Orderedpublic void setSourceExtractor(@Nullable
                               org.springframework.beans.factory.parsing.SourceExtractor sourceExtractor)
SourceExtractor to use for generated bean definitions
 that correspond to Bean factory methods.public void setProblemReporter(@Nullable
                               org.springframework.beans.factory.parsing.ProblemReporter problemReporter)
ProblemReporter to use.
 Used to register any problems detected with Configuration or Bean
 declarations. For instance, an @Bean method marked as final is illegal
 and would be reported as a problem. Defaults to FailFastProblemReporter.
public void setMetadataReaderFactory(org.springframework.core.type.classreading.MetadataReaderFactory metadataReaderFactory)
MetadataReaderFactory to use.
 Default is a CachingMetadataReaderFactory for the specified
 bean class loader.
public void setBeanNameGenerator(org.springframework.beans.factory.support.BeanNameGenerator beanNameGenerator)
BeanNameGenerator to be used when triggering component scanning
 from Configuration classes and when registering Import'ed
 configuration classes. The default is a standard AnnotationBeanNameGenerator
 for scanned components (compatible with the default in ClassPathBeanDefinitionScanner)
 and a variant thereof for imported configuration classes (using unique fully-qualified
 class names instead of standard component overriding).
 Note that this strategy does not apply to Bean methods.
 
This setter is typically only appropriate when configuring the post-processor as a
 standalone bean definition in XML, e.g. not using the dedicated AnnotationConfig*
 application contexts or the <context:annotation-config> element. Any bean name
 generator specified against the application context will take precedence over any set here.
public void setEnvironment(org.springframework.core.env.Environment environment)
EnvironmentAwareEnvironment that this component runs in.setEnvironment in interface EnvironmentAwarepublic void setResourceLoader(org.springframework.core.io.ResourceLoader resourceLoader)
ResourceLoaderAwareThis might be a ResourcePatternResolver, which can be checked
 through instanceof ResourcePatternResolver. See also the
 ResourcePatternUtils.getResourcePatternResolver method.
 
Invoked after population of normal bean properties but before an init callback
 like InitializingBean's afterPropertiesSet or a custom init-method.
 Invoked before ApplicationContextAware's setApplicationContext.
setResourceLoader in interface ResourceLoaderAwareresourceLoader - the ResourceLoader object to be used by this objectResourcePatternResolver, 
ResourcePatternUtils.getResourcePatternResolver(org.springframework.core.io.ResourceLoader)public void setBeanClassLoader(ClassLoader beanClassLoader)
setBeanClassLoader in interface org.springframework.beans.factory.BeanClassLoaderAwarepublic void postProcessBeanDefinitionRegistry(org.springframework.beans.factory.support.BeanDefinitionRegistry registry)
postProcessBeanDefinitionRegistry in interface org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessorpublic void postProcessBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)
postProcessBeanFactory in interface org.springframework.beans.factory.config.BeanFactoryPostProcessorpublic void processConfigBeanDefinitions(org.springframework.beans.factory.support.BeanDefinitionRegistry registry)
Configuration classes.public void enhanceConfigurationClasses(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)
ConfigurationClassEnhancer.
 Candidate status is determined by BeanDefinition attribute metadata.ConfigurationClassEnhancer