public class AnnotationConfigApplicationContext extends GenericApplicationContext implements AnnotationConfigRegistry
@Configuration-annotated classes, but also plain
 @Component types and JSR-330 compliant
 classes using javax.inject annotations.
 Allows for registering classes one by one using register(Class...)
 as well as for classpath scanning using scan(String...).
 
In case of multiple @Configuration classes, @Bean methods
 defined in later classes will override those defined in earlier classes. This can
 be leveraged to deliberately override certain bean definitions via an extra
 @Configuration class.
 
See @Configuration's javadoc for usage examples.
register(java.lang.Class<?>...), 
scan(java.lang.String...), 
AnnotatedBeanDefinitionReader, 
ClassPathBeanDefinitionScanner, 
GenericXmlApplicationContextDefaultResourceLoader.ClassPathContextResourceAPPLICATION_EVENT_MULTICASTER_BEAN_NAME, LIFECYCLE_PROCESSOR_BEAN_NAME, logger, MESSAGE_SOURCE_BEAN_NAMECONFIG_LOCATION_DELIMITERS, CONVERSION_SERVICE_BEAN_NAME, ENVIRONMENT_BEAN_NAME, LOAD_TIME_WEAVER_BEAN_NAME, SHUTDOWN_HOOK_THREAD_NAME, SYSTEM_ENVIRONMENT_BEAN_NAME, SYSTEM_PROPERTIES_BEAN_NAMEFACTORY_BEAN_PREFIXCLASSPATH_ALL_URL_PREFIXCLASSPATH_URL_PREFIX| Constructor and Description | 
|---|
| AnnotationConfigApplicationContext()Create a new AnnotationConfigApplicationContext that needs to be populated
 through  register(java.lang.Class<?>...)calls and then manually refreshed. | 
| AnnotationConfigApplicationContext(Class<?>... componentClasses)Create a new AnnotationConfigApplicationContext, deriving bean definitions
 from the given component classes and automatically refreshing the context. | 
| AnnotationConfigApplicationContext(DefaultListableBeanFactory beanFactory)Create a new AnnotationConfigApplicationContext with the given DefaultListableBeanFactory. | 
| AnnotationConfigApplicationContext(String... basePackages)Create a new AnnotationConfigApplicationContext, scanning for components
 in the given packages, registering bean definitions for those components,
 and automatically refreshing the context. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | register(Class<?>... componentClasses)Register one or more component classes to be processed. | 
| <T> void | registerBean(String beanName,
            Class<T> beanClass,
            Supplier<T> supplier,
            BeanDefinitionCustomizer... customizers)Register a bean from the given bean class, using the given supplier for
 obtaining a new instance (typically declared as a lambda expression or
 method reference), optionally customizing its bean definition metadata
 (again typically declared as a lambda expression). | 
| void | scan(String... basePackages)Perform a scan within the specified base packages. | 
| void | setBeanNameGenerator(BeanNameGenerator beanNameGenerator)Provide a custom  BeanNameGeneratorfor use withAnnotatedBeanDefinitionReaderand/orClassPathBeanDefinitionScanner, if any. | 
| void | setEnvironment(ConfigurableEnvironment environment)Propagate the given custom  Environmentto the underlyingAnnotatedBeanDefinitionReaderandClassPathBeanDefinitionScanner. | 
| void | setScopeMetadataResolver(ScopeMetadataResolver scopeMetadataResolver)Set the  ScopeMetadataResolverto use for registered component classes. | 
cancelRefresh, closeBeanFactory, getAutowireCapableBeanFactory, getBeanDefinition, getBeanFactory, getClassLoader, getDefaultListableBeanFactory, getResource, getResources, isAlias, isBeanNameInUse, refreshBeanFactory, registerAlias, registerBean, registerBean, registerBean, registerBean, registerBean, registerBeanDefinition, removeAlias, removeBeanDefinition, setAllowBeanDefinitionOverriding, setAllowCircularReferences, setClassLoader, setParent, setResourceLoaderaddApplicationListener, addBeanFactoryPostProcessor, assertBeanFactoryActive, close, containsBean, containsBeanDefinition, containsLocalBean, createEnvironment, destroy, destroyBeans, doClose, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getApplicationName, getBean, getBean, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanProvider, getBeanProvider, getBeansOfType, getBeansOfType, getBeansWithAnnotation, getDisplayName, getEnvironment, getId, getInternalParentBeanFactory, getInternalParentMessageSource, getMessage, getMessage, getMessage, getParent, getParentBeanFactory, getResourcePatternResolver, getStartupDate, getType, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, initPropertySources, invokeBeanFactoryPostProcessors, isActive, isPrototype, isRunning, isSingleton, isTypeMatch, isTypeMatch, obtainFreshBeanFactory, onClose, onRefresh, postProcessBeanFactory, prepareBeanFactory, prepareRefresh, publishEvent, publishEvent, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, resetCommonCaches, setDisplayName, setId, start, stop, toStringaddProtocolResolver, clearResourceCaches, getProtocolResolvers, getResourceByPath, getResourceCacheclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitcontainsBeanDefinition, getBeanDefinitionCount, getBeanDefinitionNamesgetAliasesaddProtocolResolverpublic AnnotationConfigApplicationContext()
register(java.lang.Class<?>...) calls and then manually refreshed.public AnnotationConfigApplicationContext(DefaultListableBeanFactory beanFactory)
beanFactory - the DefaultListableBeanFactory instance to use for this contextpublic AnnotationConfigApplicationContext(Class<?>... componentClasses)
componentClasses - one or more component classes — for example,
 @Configuration classespublic AnnotationConfigApplicationContext(String... basePackages)
basePackages - the packages to scan for component classespublic void setEnvironment(ConfigurableEnvironment environment)
Environment to the underlying
 AnnotatedBeanDefinitionReader and ClassPathBeanDefinitionScanner.setEnvironment in interface ConfigurableApplicationContextsetEnvironment in class AbstractApplicationContextenvironment - the new environmentAbstractApplicationContext.createEnvironment()public void setBeanNameGenerator(BeanNameGenerator beanNameGenerator)
BeanNameGenerator for use with AnnotatedBeanDefinitionReader
 and/or ClassPathBeanDefinitionScanner, if any.
 Default is AnnotationBeanNameGenerator.
 
Any call to this method must occur prior to calls to register(Class...)
 and/or scan(String...).
AnnotatedBeanDefinitionReader.setBeanNameGenerator(org.springframework.beans.factory.support.BeanNameGenerator), 
ClassPathBeanDefinitionScanner.setBeanNameGenerator(org.springframework.beans.factory.support.BeanNameGenerator), 
AnnotationBeanNameGenerator, 
FullyQualifiedAnnotationBeanNameGeneratorpublic void setScopeMetadataResolver(ScopeMetadataResolver scopeMetadataResolver)
ScopeMetadataResolver to use for registered component classes.
 The default is an AnnotationScopeMetadataResolver.
 
Any call to this method must occur prior to calls to register(Class...)
 and/or scan(String...).
public void register(Class<?>... componentClasses)
Note that AbstractApplicationContext.refresh() must be called in order for the context
 to fully process the new classes.
register in interface AnnotationConfigRegistrycomponentClasses - one or more component classes — for example,
 @Configuration classesscan(String...), 
AbstractApplicationContext.refresh()public void scan(String... basePackages)
Note that AbstractApplicationContext.refresh() must be called in order for the context
 to fully process the new classes.
scan in interface AnnotationConfigRegistrybasePackages - the packages to scan for component classesregister(Class...), 
AbstractApplicationContext.refresh()public <T> void registerBean(@Nullable String beanName, Class<T> beanClass, @Nullable Supplier<T> supplier, BeanDefinitionCustomizer... customizers)
GenericApplicationContextThis method can be overridden to adapt the registration mechanism for
 all registerBean methods (since they all delegate to this one).
registerBean in class GenericApplicationContextbeanName - the name of the bean (may be null)beanClass - the class of the beansupplier - a callback for creating an instance of the bean (in case
 of null, resolving a public constructor to be autowired instead)customizers - one or more callbacks for customizing the factory's
 BeanDefinition, e.g. setting a lazy-init or primary flag