public class

ConfigurationClassPostProcessor

extends Object
implements BeanClassLoaderAware BeanDefinitionRegistryPostProcessor EnvironmentAware ResourceLoaderAware
java.lang.Object
   ↳ org.springframework.context.annotation.ConfigurationClassPostProcessor

Class Overview

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 HIGHEST_PRECEDENCE as it is important that any Bean methods declared in Configuration classes have their respective bean definitions registered before any other BeanFactoryPostProcessor executes.

Summary

Public Constructors
ConfigurationClassPostProcessor()
Public Methods
void enhanceConfigurationClasses(ConfigurableListableBeanFactory beanFactory)
Post-processes a BeanFactory in search of Configuration class BeanDefinitions; any candidates are then enhanced by a ConfigurationClassEnhancer.
void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry)
Derive further bean definitions from the configuration classes in the registry.
void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
Prepare the Configuration classes for servicing bean requests at runtime by replacing them with CGLIB-enhanced subclasses.
void processConfigBeanDefinitions(BeanDefinitionRegistry registry, ConfigurationClassBeanDefinitionReader reader)
Build and validate a configuration model based on the registry of Configuration classes.
void setBeanClassLoader(ClassLoader beanClassLoader)
Callback that supplies the bean class loader to a bean instance.
void setEnvironment(Environment environment)
Set the Environment that this object runs in.
void setMetadataReaderFactory(MetadataReaderFactory metadataReaderFactory)
Set the MetadataReaderFactory to use.
void setProblemReporter(ProblemReporter problemReporter)
Set the ProblemReporter to use.
void setResourceLoader(ResourceLoader resourceLoader)
Set the ResourceLoader that this object runs in.
void setSourceExtractor(SourceExtractor sourceExtractor)
Set the SourceExtractor to use for generated bean definitions that correspond to Bean factory methods.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.springframework.beans.factory.BeanClassLoaderAware
From interface org.springframework.beans.factory.config.BeanFactoryPostProcessor
From interface org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor
From interface org.springframework.context.EnvironmentAware
From interface org.springframework.context.ResourceLoaderAware

Public Constructors

public ConfigurationClassPostProcessor ()

Public Methods

public void enhanceConfigurationClasses (ConfigurableListableBeanFactory beanFactory)

Post-processes a BeanFactory in search of Configuration class BeanDefinitions; any candidates are then enhanced by a ConfigurationClassEnhancer. Candidate status is determined by BeanDefinition attribute metadata.

See Also
  • ConfigurationClassEnhancer

public void postProcessBeanDefinitionRegistry (BeanDefinitionRegistry registry)

Derive further bean definitions from the configuration classes in the registry.

Parameters
registry the bean definition registry used by the application context

public void postProcessBeanFactory (ConfigurableListableBeanFactory beanFactory)

Prepare the Configuration classes for servicing bean requests at runtime by replacing them with CGLIB-enhanced subclasses.

Parameters
beanFactory the bean factory used by the application context

public void processConfigBeanDefinitions (BeanDefinitionRegistry registry, ConfigurationClassBeanDefinitionReader reader)

Build and validate a configuration model based on the registry of Configuration classes.

public void setBeanClassLoader (ClassLoader beanClassLoader)

Callback that supplies the bean class loader to a bean instance.

Invoked after the population of normal bean properties but before an initialization callback such as InitializingBean's afterPropertiesSet() method or a custom init-method.

Parameters
beanClassLoader the owning class loader; may be null in which case a default ClassLoader must be used, for example the ClassLoader obtained via getDefaultClassLoader()

public void setEnvironment (Environment environment)

Set the Environment that this object runs in.

public void setMetadataReaderFactory (MetadataReaderFactory metadataReaderFactory)

Set the MetadataReaderFactory to use.

Default is a CachingMetadataReaderFactory for the specified bean class loader.

public void setProblemReporter (ProblemReporter problemReporter)

Set the 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 setResourceLoader (ResourceLoader resourceLoader)

Set the ResourceLoader that this object runs in.

This 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.

Parameters
resourceLoader ResourceLoader object to be used by this object

public void setSourceExtractor (SourceExtractor sourceExtractor)

Set the SourceExtractor to use for generated bean definitions that correspond to Bean factory methods.