Top Description Inners Fields Constructors Methods
org.springframework.context.annotation

pack-priv Class ConfigurationClassBeanDefinitionReader

extends Object
Class Inheritance
Imports
java.lang.reflect.Method, java.util.ArrayList, .Arrays, .HashMap, .List, .Map, .Set, org.apache.commons.logging.Log, .LogFactory, org.springframework.beans.factory.BeanDefinitionStoreException, org.springframework.beans.factory.annotation.AnnotatedBeanDefinition, .AnnotatedGenericBeanDefinition, org.springframework.beans.factory.config.BeanDefinition, .BeanDefinitionHolder, org.springframework.beans.factory.groovy.GroovyBeanDefinitionReader, org.springframework.beans.factory.parsing.SourceExtractor, org.springframework.beans.factory.support.AbstractBeanDefinition, .AbstractBeanDefinitionReader, .BeanDefinitionReader, .BeanDefinitionRegistry, .BeanNameGenerator, .DefaultListableBeanFactory, .RootBeanDefinition, org.springframework.beans.factory.xml.XmlBeanDefinitionReader, org.springframework.context.annotation.ConfigurationCondition.ConfigurationPhase, org.springframework.core.annotation.AnnotationAttributes, org.springframework.core.env.Environment, org.springframework.core.io.Resource, .ResourceLoader, org.springframework.core.type.AnnotationMetadata, .MethodMetadata, .StandardAnnotationMetadata, .StandardMethodMetadata, org.springframework.lang.NonNull, org.springframework.util.Assert, .StringUtils

Reads a given fully-populated set of ConfigurationClass instances, registering bean definitions with the given BeanDefinitionRegistry based on its contents.

This class was modeled after the BeanDefinitionReader hierarchy, but does not implement/extend any of its artifacts as a set of configuration classes is not a Resource.

Authors
Chris Beams, Juergen Hoeller, Phillip Webb, Sam Brannen, Sebastien Deleuze
Since
3.0
See Also
ConfigurationClassParser

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class
ConfigurationClassBeanDefinitionReader.ConfigurationClassBeanDefinition

RootBeanDefinition marker subclass used to signify that a bean definition was created from a configuration class as opposed to any other configuration source.

private class
ConfigurationClassBeanDefinitionReader.TrackedConditionEvaluator

Evaluate @Conditional annotations, tracking results and taking into account 'imported by'.

Field Summary

Modifier and TypeField and Description
private final ConditionEvaluator
private final Environment
private final BeanNameGenerator
private final ImportRegistry
private static final Log
private final BeanDefinitionRegistry
private final ResourceLoader
private static final ScopeMetadataResolver
private final SourceExtractor

Constructor Summary

AccessConstructor and Description
pack-priv
ConfigurationClassBeanDefinitionReader(BeanDefinitionRegistry registry, SourceExtractor sourceExtractor, ResourceLoader resourceLoader, Environment environment, BeanNameGenerator importBeanNameGenerator, ImportRegistry importRegistry)

Create a new ConfigurationClassBeanDefinitionReader instance that will be used to populate the given BeanDefinitionRegistry.

Method Summary

Modifier and TypeMethod and Description
protected boolean
public void
loadBeanDefinitions(Set<ConfigurationClass> configurationModel)

Read configurationModel, registering bean definitions with the registry based on its contents.

private void
loadBeanDefinitionsForBeanMethod(BeanMethod beanMethod)

Read the given BeanMethod, registering bean definitions with the BeanDefinitionRegistry based on its contents.

private void
loadBeanDefinitionsForConfigurationClass(ConfigurationClass configClass, ConfigurationClassBeanDefinitionReader.TrackedConditionEvaluator trackedConditionEvaluator)

Read a particular ConfigurationClass, registering bean definitions for the class itself and all of its Bean methods.

private void
private void
private void
registerBeanDefinitionForImportedConfigurationClass(ConfigurationClass configClass)

Register the Configuration class itself as a bean definition.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

conditionEvaluatorback to summary
private final ConditionEvaluator conditionEvaluator
environmentback to summary
private final Environment environment
importBeanNameGeneratorback to summary
private final BeanNameGenerator importBeanNameGenerator
importRegistryback to summary
private final ImportRegistry importRegistry
loggerback to summary
private static final Log logger
registryback to summary
private final BeanDefinitionRegistry registry
resourceLoaderback to summary
private final ResourceLoader resourceLoader
scopeMetadataResolverback to summary
private static final ScopeMetadataResolver scopeMetadataResolver
sourceExtractorback to summary
private final SourceExtractor sourceExtractor

Constructor Detail

ConfigurationClassBeanDefinitionReaderback to summary
pack-priv ConfigurationClassBeanDefinitionReader(BeanDefinitionRegistry registry, SourceExtractor sourceExtractor, ResourceLoader resourceLoader, Environment environment, BeanNameGenerator importBeanNameGenerator, ImportRegistry importRegistry)

Create a new ConfigurationClassBeanDefinitionReader instance that will be used to populate the given BeanDefinitionRegistry.

Method Detail

isOverriddenByExistingDefinitionback to summary
protected boolean isOverriddenByExistingDefinition(BeanMethod beanMethod, String beanName)
loadBeanDefinitionsback to summary
public void loadBeanDefinitions(Set<ConfigurationClass> configurationModel)

Read configurationModel, registering bean definitions with the registry based on its contents.

loadBeanDefinitionsForBeanMethodback to summary
private void loadBeanDefinitionsForBeanMethod(BeanMethod beanMethod)

Read the given BeanMethod, registering bean definitions with the BeanDefinitionRegistry based on its contents.

loadBeanDefinitionsForConfigurationClassback to summary
private void loadBeanDefinitionsForConfigurationClass(ConfigurationClass configClass, ConfigurationClassBeanDefinitionReader.TrackedConditionEvaluator trackedConditionEvaluator)

Read a particular ConfigurationClass, registering bean definitions for the class itself and all of its Bean methods.

loadBeanDefinitionsFromImportedResourcesback to summary
private void loadBeanDefinitionsFromImportedResources(Map<String, Class<? extends BeanDefinitionReader>> importedResources)
loadBeanDefinitionsFromRegistrarsback to summary
private void loadBeanDefinitionsFromRegistrars(Map<ImportBeanDefinitionRegistrar, AnnotationMetadata> registrars)
registerBeanDefinitionForImportedConfigurationClassback to summary
private void registerBeanDefinitionForImportedConfigurationClass(ConfigurationClass configClass)

Register the Configuration class itself as a bean definition.

org.springframework.context.annotation back to summary

private Class ConfigurationClassBeanDefinitionReader.ConfigurationClassBeanDefinition

extends RootBeanDefinition
implements AnnotatedBeanDefinition
Class Inheritance
All Implemented Interfaces
org.springframework.beans.factory.annotation.AnnotatedBeanDefinition, org.springframework.beans.factory.config.BeanDefinition, org.springframework.beans.BeanMetadataElement, org.springframework.core.AttributeAccessor
Annotations
@SuppressWarnings:serial

RootBeanDefinition marker subclass used to signify that a bean definition was created from a configuration class as opposed to any other configuration source. Used in bean overriding cases where it's necessary to determine whether the bean definition was created externally.

Field Summary

Modifier and TypeField and Description
private final AnnotationMetadata
private final String
private final MethodMetadata

Constructor Summary

AccessConstructor and Description
public
ConfigurationClassBeanDefinition(ConfigurationClass configClass, MethodMetadata beanMethodMetadata, String derivedBeanName)

public
ConfigurationClassBeanDefinition(RootBeanDefinition original, ConfigurationClass configClass, MethodMetadata beanMethodMetadata, String derivedBeanName)

private

Method Summary

Modifier and TypeMethod and Description
public ConfigurationClassBeanDefinitionReader.ConfigurationClassBeanDefinition
public MethodMetadata
getFactoryMethodMetadata()

Implements org.springframework.beans.factory.annotation.AnnotatedBeanDefinition.getFactoryMethodMetadata.

Obtain metadata for this bean definition's factory method, if any.

public AnnotationMetadata
getMetadata()

Implements org.springframework.beans.factory.annotation.AnnotatedBeanDefinition.getMetadata.

Obtain the annotation metadata (as well as basic class metadata) for this bean definition's bean class.

public boolean
isFactoryMethod(Method candidate)

Overrides org.springframework.beans.factory.support.RootBeanDefinition.isFactoryMethod.

Check whether the given candidate qualifies as a factory method.

Inherited from org.springframework.beans.factory.support.RootBeanDefinition:
equalsgetDecoratedDefinitiongetExternallyManagedConfigMembersgetExternallyManagedDestroyMethodsgetExternallyManagedInitMethodsgetParentNamegetPreferredConstructorsgetQualifiedElementgetResolvableTypegetResolvedFactoryMethodgetTargetTypeisExternallyManagedConfigMemberisExternallyManagedDestroyMethodisExternallyManagedInitMethodmarkAsPostProcessedregisterExternallyManagedConfigMemberregisterExternallyManagedDestroyMethodregisterExternallyManagedInitMethodresolveDestroyMethodIfNecessarysetDecoratedDefinitionsetInstanceSuppliersetNonUniqueFactoryMethodNamesetParentNamesetQualifiedElementsetResolvedFactoryMethodsetTargetTypesetTargetTypesetUniqueFactoryMethodNametoString

Field Detail

annotationMetadataback to summary
private final AnnotationMetadata annotationMetadata
derivedBeanNameback to summary
private final String derivedBeanName
factoryMethodMetadataback to summary
private final MethodMetadata factoryMethodMetadata

Constructor Detail

ConfigurationClassBeanDefinitionback to summary
public ConfigurationClassBeanDefinition(ConfigurationClass configClass, MethodMetadata beanMethodMetadata, String derivedBeanName)
ConfigurationClassBeanDefinitionback to summary
public ConfigurationClassBeanDefinition(RootBeanDefinition original, ConfigurationClass configClass, MethodMetadata beanMethodMetadata, String derivedBeanName)
ConfigurationClassBeanDefinitionback to summary
private ConfigurationClassBeanDefinition(ConfigurationClassBeanDefinitionReader.ConfigurationClassBeanDefinition original)

Method Detail

cloneBeanDefinitionback to summary
public ConfigurationClassBeanDefinitionReader.ConfigurationClassBeanDefinition cloneBeanDefinition()

Overrides org.springframework.beans.factory.support.RootBeanDefinition.cloneBeanDefinition.

Doc from org.springframework.beans.factory.support.AbstractBeanDefinition.cloneBeanDefinition.

Clone this bean definition. To be implemented by concrete subclasses.

Returns:ConfigurationClassBeanDefinitionReader.ConfigurationClassBeanDefinition

the cloned bean definition object

Annotations
@Override
getFactoryMethodMetadataback to summary
public MethodMetadata getFactoryMethodMetadata()

Implements org.springframework.beans.factory.annotation.AnnotatedBeanDefinition.getFactoryMethodMetadata.

Doc from org.springframework.beans.factory.annotation.AnnotatedBeanDefinition.getFactoryMethodMetadata.

Obtain metadata for this bean definition's factory method, if any.

Returns:MethodMetadata

the factory method metadata, or null if none

Annotations
@Override
@NonNull
getMetadataback to summary
public AnnotationMetadata getMetadata()

Implements org.springframework.beans.factory.annotation.AnnotatedBeanDefinition.getMetadata.

Doc from org.springframework.beans.factory.annotation.AnnotatedBeanDefinition.getMetadata.

Obtain the annotation metadata (as well as basic class metadata) for this bean definition's bean class.

Returns:AnnotationMetadata

the annotation metadata object (never null)

Annotations
@Override
isFactoryMethodback to summary
public boolean isFactoryMethod(Method candidate)

Overrides org.springframework.beans.factory.support.RootBeanDefinition.isFactoryMethod.

Doc from org.springframework.beans.factory.support.RootBeanDefinition.isFactoryMethod.

Check whether the given candidate qualifies as a factory method.

Annotations
@Override
org.springframework.context.annotation back to summary

private Class ConfigurationClassBeanDefinitionReader.TrackedConditionEvaluator

extends Object
Class Inheritance
  • java.lang.Object
  • org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.TrackedConditionEvaluator

Evaluate @Conditional annotations, tracking results and taking into account 'imported by'.

Field Summary

Modifier and TypeField and Description
private final Map<ConfigurationClass, Boolean>

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public boolean
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

skippedback to summary
private final Map<ConfigurationClass, Boolean> skipped

Constructor Detail

TrackedConditionEvaluatorback to summary
private TrackedConditionEvaluator()

Method Detail

shouldSkipback to summary
public boolean shouldSkip(ConfigurationClass configClass)