类 ConfigurationClassPostProcessor
- java.lang.Object
- org.springframework.context.annotation.ConfigurationClassPostProcessor
- 所有已实现的接口:
Aware,BeanClassLoaderAware,BeanFactoryPostProcessor,BeanDefinitionRegistryPostProcessor,EnvironmentAware,ResourceLoaderAware,Ordered,PriorityOrdered
public class ConfigurationClassPostProcessor extends Object implements BeanDefinitionRegistryPostProcessor, PriorityOrdered, ResourceLoaderAware, BeanClassLoaderAware, EnvironmentAware
BeanFactoryPostProcessorused for bootstrapping processing of@Configurationclasses.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
Beanmethods declared in@Configurationclasses have their corresponding bean definitions registered before any otherBeanFactoryPostProcessorexecutes.- 从以下版本开始:
- 3.0
- 作者:
- Chris Beams, Juergen Hoeller, Phillip Webb
字段概要
字段 修饰符和类型 字段 说明 static AnnotationBeanNameGeneratorIMPORT_BEAN_NAME_GENERATORABeanNameGeneratorusing fully qualified class names as default bean names.从接口继承的字段 org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
构造器概要
构造器 构造器 说明 ConfigurationClassPostProcessor()
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 voidenhanceConfigurationClasses(ConfigurableListableBeanFactory beanFactory)Post-processes a BeanFactory in search of Configuration class BeanDefinitions; any candidates are then enhanced by aConfigurationClassEnhancer.intgetOrder()Get the order value of this object.voidpostProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry)Derive 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.voidprocessConfigBeanDefinitions(BeanDefinitionRegistry registry)Build and validate a configuration model based on the registry ofConfigurationclasses.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.
字段详细资料
IMPORT_BEAN_NAME_GENERATOR
public static final AnnotationBeanNameGenerator 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.
构造器详细资料
ConfigurationClassPostProcessor
public ConfigurationClassPostProcessor()
方法详细资料
getOrder
public int getOrder()
从接口复制的说明: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.
- 指定者:
getOrder在接口中Ordered- 返回:
- the order value
- 另请参阅:
Ordered.HIGHEST_PRECEDENCE,Ordered.LOWEST_PRECEDENCE
setSourceExtractor
public void setSourceExtractor(@Nullable SourceExtractor sourceExtractor)
Set theSourceExtractorto use for generated bean definitions that correspond toBeanfactory methods.
setProblemReporter
public void setProblemReporter(@Nullable ProblemReporter problemReporter)
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
public void setMetadataReaderFactory(MetadataReaderFactory metadataReaderFactory)
Set theMetadataReaderFactoryto use.Default is a
CachingMetadataReaderFactoryfor the specified bean class loader.
setBeanNameGenerator
public void setBeanNameGenerator(BeanNameGenerator beanNameGenerator)
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
public void setEnvironment(Environment environment)
从接口复制的说明:EnvironmentAwareSet theEnvironmentthat this component runs in.- 指定者:
setEnvironment在接口中EnvironmentAware
setResourceLoader
public void setResourceLoader(ResourceLoader resourceLoader)
从接口复制的说明: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.- 指定者:
setResourceLoader在接口中ResourceLoaderAware- 参数:
resourceLoader- the ResourceLoader object to be used by this object- 另请参阅:
ResourcePatternResolver,ResourcePatternUtils.getResourcePatternResolver(org.springframework.core.io.ResourceLoader)
setBeanClassLoader
public void setBeanClassLoader(ClassLoader beanClassLoader)
从接口复制的说明: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.- 指定者:
setBeanClassLoader在接口中BeanClassLoaderAware- 参数:
beanClassLoader- the owning class loader
postProcessBeanDefinitionRegistry
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry)
Derive further bean definitions from the configuration classes in the registry.- 指定者:
postProcessBeanDefinitionRegistry在接口中BeanDefinitionRegistryPostProcessor- 参数:
registry- the bean definition registry used by the application context
postProcessBeanFactory
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
Prepare the Configuration classes for servicing bean requests at runtime by replacing them with CGLIB-enhanced subclasses.- 指定者:
postProcessBeanFactory在接口中BeanFactoryPostProcessor- 参数:
beanFactory- the bean factory used by the application context
processConfigBeanDefinitions
public void processConfigBeanDefinitions(BeanDefinitionRegistry registry)
Build and validate a configuration model based on the registry ofConfigurationclasses.
enhanceConfigurationClasses
public void enhanceConfigurationClasses(ConfigurableListableBeanFactory beanFactory)
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.- 另请参阅:
ConfigurationClassEnhancer