spring-framework / org.springframework.context.annotation / ConfigurationClassPostProcessor

ConfigurationClassPostProcessor

open class ConfigurationClassPostProcessor : BeanDefinitionRegistryPostProcessor, PriorityOrdered, ResourceLoaderAware, 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 Ordered#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.

Author
Chris Beams

Author
Juergen Hoeller

Author
Phillip Webb

Since
3.0

Constructors

<init>

ConfigurationClassPostProcessor()

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 Ordered#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.

Functions

enhanceConfigurationClasses

open fun enhanceConfigurationClasses(beanFactory: ConfigurableListableBeanFactory): Unit

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.

getOrder

open fun getOrder(): Int

postProcessBeanDefinitionRegistry

open fun postProcessBeanDefinitionRegistry(registry: BeanDefinitionRegistry): Unit

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

postProcessBeanFactory

open fun postProcessBeanFactory(beanFactory: ConfigurableListableBeanFactory): Unit

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

processConfigBeanDefinitions

open fun processConfigBeanDefinitions(registry: BeanDefinitionRegistry): Unit

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

setBeanClassLoader

open fun setBeanClassLoader(beanClassLoader: ClassLoader): Unit

setBeanNameGenerator

open fun setBeanNameGenerator(beanNameGenerator: BeanNameGenerator): Unit

Set the 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 value set here.

setEnvironment

open fun setEnvironment(environment: Environment): Unit

setMetadataReaderFactory

open fun setMetadataReaderFactory(metadataReaderFactory: MetadataReaderFactory): Unit

Set the MetadataReaderFactory to use.

Default is a CachingMetadataReaderFactory for the specified bean class loader.

setProblemReporter

open fun setProblemReporter(problemReporter: ProblemReporter): Unit

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.

setResourceLoader

open fun setResourceLoader(resourceLoader: ResourceLoader): Unit

setSourceExtractor

open fun setSourceExtractor(sourceExtractor: SourceExtractor): Unit

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