Class ConfigurationClassPostProcessor
- All Implemented Interfaces:
Aware,BeanClassLoaderAware,BeanFactoryPostProcessor,AotContributingBeanFactoryPostProcessor,BeanDefinitionRegistryPostProcessor,ApplicationStartupAware,EnvironmentAware,ResourceLoaderAware,Ordered,PriorityOrdered
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.
- Since:
- 3.0
- Author:
- Chris Beams, Juergen Hoeller, Phillip Webb, Sam Brannen
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final AnnotationBeanNameGeneratorABeanNameGeneratorusing fully qualified class names as default bean names.Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncontribute(ConfigurableListableBeanFactory beanFactory) Contribute aBeanFactoryContributionfor the given bean factory, if applicable.voidPost-processes a BeanFactory in search of Configuration class BeanDefinitions; any candidates are then enhanced by aConfigurationClassEnhancer.intgetOrder()Get the order value of this object.voidDerive further bean definitions from the configuration classes in the registry.voidpostProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) Prepare the Configuration classes for servicing bean requests at runtime by replacing them with CGLIB-enhanced subclasses.voidBuild and validate a configuration model based on the registry ofConfigurationclasses.voidsetApplicationStartup(ApplicationStartup applicationStartup) Set the ApplicationStartup that this object runs with.voidsetBeanClassLoader(ClassLoader beanClassLoader) Callback that supplies the beanclass loaderto a bean instance.voidsetBeanNameGenerator(BeanNameGenerator beanNameGenerator) Set theBeanNameGeneratorto be used when triggering component scanning fromConfigurationclasses and when registeringImport'ed configuration classes.voidsetEnvironment(Environment environment) Set theEnvironmentthat this component runs in.voidsetMetadataReaderFactory(MetadataReaderFactory metadataReaderFactory) Set theMetadataReaderFactoryto use.voidsetProblemReporter(ProblemReporter problemReporter) Set theProblemReporterto use.voidsetResourceLoader(ResourceLoader resourceLoader) Set the ResourceLoader that this object runs in.voidsetSourceExtractor(SourceExtractor sourceExtractor) Set theSourceExtractorto use for generated bean definitions that correspond toBeanfactory methods.
-
Field Details
-
IMPORT_BEAN_NAME_GENERATOR
ABeanNameGeneratorusing 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 plainAnnotationBeanNameGenerator.INSTANCE, unless overridden throughsetBeanNameGenerator(org.springframework.beans.factory.support.BeanNameGenerator)with a unified user-level bean name generator.- Since:
- 5.2
- See Also:
-
-
Constructor Details
-
ConfigurationClassPostProcessor
public ConfigurationClassPostProcessor()
-
-
Method Details
-
getOrder
public int getOrder()Description copied from interface:OrderedGet the order value of this object.Higher values are interpreted as lower priority. As a consequence, the object with the lowest value has the highest priority (somewhat analogous to Servlet
load-on-startupvalues).Same order values will result in arbitrary sort positions for the affected objects.
-
setSourceExtractor
Set theSourceExtractorto use for generated bean definitions that correspond toBeanfactory methods. -
setProblemReporter
Set theProblemReporterto use.Used to register any problems detected with
ConfigurationorBeandeclarations. For instance, an @Bean method marked asfinalis illegal and would be reported as a problem. Defaults toFailFastProblemReporter. -
setMetadataReaderFactory
Set theMetadataReaderFactoryto use.Default is a
CachingMetadataReaderFactoryfor the specified bean class loader. -
setBeanNameGenerator
Set theBeanNameGeneratorto be used when triggering component scanning fromConfigurationclasses and when registeringImport'ed configuration classes. The default is a standardAnnotationBeanNameGeneratorfor scanned components (compatible with the default inClassPathBeanDefinitionScanner) 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
Beanmethods.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. -
setEnvironment
Description copied from interface:EnvironmentAwareSet theEnvironmentthat this component runs in.- Specified by:
setEnvironmentin interfaceEnvironmentAware
-
setResourceLoader
Description copied from interface:ResourceLoaderAwareSet the ResourceLoader that this object runs in.This might be a ResourcePatternResolver, which can be checked through
instanceof ResourcePatternResolver. See also theResourcePatternUtils.getResourcePatternResolvermethod.Invoked after population of normal bean properties but before an init callback like InitializingBean's
afterPropertiesSetor a custom init-method. Invoked before ApplicationContextAware'ssetApplicationContext.- Specified by:
setResourceLoaderin interfaceResourceLoaderAware- Parameters:
resourceLoader- the ResourceLoader object to be used by this object- See Also:
-
setBeanClassLoader
Description copied from interface:BeanClassLoaderAwareCallback that supplies the beanclass loaderto a bean instance.Invoked after the population of normal bean properties but before an initialization callback such as
InitializingBean'sInitializingBean.afterPropertiesSet()method or a custom init-method.- Specified by:
setBeanClassLoaderin interfaceBeanClassLoaderAware- Parameters:
beanClassLoader- the owning class loader
-
setApplicationStartup
Description copied from interface:ApplicationStartupAwareSet the ApplicationStartup that this object runs with.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.
- Specified by:
setApplicationStartupin interfaceApplicationStartupAware- Parameters:
applicationStartup- application startup to be used by this object
-
postProcessBeanDefinitionRegistry
Derive further bean definitions from the configuration classes in the registry.- Specified by:
postProcessBeanDefinitionRegistryin interfaceBeanDefinitionRegistryPostProcessor- Parameters:
registry- the bean definition registry used by the application context
-
postProcessBeanFactory
Prepare the Configuration classes for servicing bean requests at runtime by replacing them with CGLIB-enhanced subclasses.- Specified by:
postProcessBeanFactoryin interfaceAotContributingBeanFactoryPostProcessor- Specified by:
postProcessBeanFactoryin interfaceBeanFactoryPostProcessor- Parameters:
beanFactory- the bean factory used by the application context
-
contribute
Description copied from interface:AotContributingBeanFactoryPostProcessorContribute aBeanFactoryContributionfor the given bean factory, if applicable.- Specified by:
contributein interfaceAotContributingBeanFactoryPostProcessor- Parameters:
beanFactory- the bean factory to optimize- Returns:
- the contribution to use or
null
-
processConfigBeanDefinitions
Build and validate a configuration model based on the registry ofConfigurationclasses. -
enhanceConfigurationClasses
Post-processes a BeanFactory in search of Configuration class BeanDefinitions; any candidates are then enhanced by aConfigurationClassEnhancer. Candidate status is determined by BeanDefinition attribute metadata.- See Also:
-
ConfigurationClassEnhancer
-