public class AnnotationConfigServletWebApplicationContext extends GenericWebApplicationContext implements AnnotationConfigRegistry
GenericWebApplicationContextthat accepts annotated classes as input - in
 particular @Configuration-annotated classes, but also plain
 @Component classes and JSR-330 compliant classes using
 javax.inject annotations. Allows for registering classes one by one (specifying
 class names as config location) as well as for classpath scanning (specifying base
 packages as config location).
 
 Note: In case of multiple @Configuration classes, later @Bean
 definitions will override ones defined in earlier loaded files. This can be leveraged
 to deliberately override certain bean definitions via an extra Configuration class.
register(Class...), 
scan(String...)DefaultResourceLoader.ClassPathContextResourceAPPLICATION_EVENT_MULTICASTER_BEAN_NAME, LIFECYCLE_PROCESSOR_BEAN_NAME, logger, MESSAGE_SOURCE_BEAN_NAMEAPPLICATION_CONTEXT_ID_PREFIX, SERVLET_CONFIG_BEAN_NAMECONTEXT_ATTRIBUTES_BEAN_NAME, CONTEXT_PARAMETERS_BEAN_NAME, ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, SCOPE_APPLICATION, SCOPE_REQUEST, SCOPE_SESSION, SERVLET_CONTEXT_BEAN_NAMEAPPLICATION_STARTUP_BEAN_NAME, CONFIG_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 | 
|---|
| AnnotationConfigServletWebApplicationContext()Create a new  AnnotationConfigServletWebApplicationContextthat needs to be
 populated throughregister(java.lang.Class<?>...)calls and then manually refreshed. | 
| AnnotationConfigServletWebApplicationContext(Class<?>... annotatedClasses)Create a new  AnnotationConfigServletWebApplicationContext, deriving bean
 definitions from the given annotated classes and automatically refreshing the
 context. | 
| AnnotationConfigServletWebApplicationContext(DefaultListableBeanFactory beanFactory)Create a new  AnnotationConfigServletWebApplicationContextwith the givenDefaultListableBeanFactory. | 
| AnnotationConfigServletWebApplicationContext(String... basePackages)Create a new  AnnotationConfigServletWebApplicationContext, scanning for
 bean definitions in the given packages and automatically refreshing the context. | 
| Modifier and Type | Method and Description | 
|---|---|
| protected void | postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) | 
| protected void | prepareRefresh() | 
| void | register(Class<?>... annotatedClasses)Register one or more annotated classes to be processed. | 
| <T> void | registerBean(String beanName,
            Class<T> beanClass,
            Supplier<T> supplier,
            BeanDefinitionCustomizer... customizers) | 
| 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) | 
| void | setScopeMetadataResolver(ScopeMetadataResolver scopeMetadataResolver)Set the  ScopeMetadataResolverto use for detected bean classes. | 
createEnvironment, getApplicationName, getConfigLocations, getNamespace, getResourceByPath, getResourcePatternResolver, getServletConfig, getServletContext, getTheme, initPropertySources, onRefresh, setConfigLocation, setConfigLocations, setNamespace, setServletConfig, setServletContextcancelRefresh, closeBeanFactory, getAutowireCapableBeanFactory, getBeanDefinition, getBeanFactory, getClassLoader, getDefaultListableBeanFactory, getResource, getResources, isAlias, isBeanNameInUse, refreshBeanFactory, registerAlias, registerBean, registerBean, registerBean, registerBean, registerBean, registerBeanDefinition, removeAlias, removeBeanDefinition, setAllowBeanDefinitionOverriding, setAllowCircularReferences, setApplicationStartup, setClassLoader, setParent, setResourceLoaderaddApplicationListener, addBeanFactoryPostProcessor, assertBeanFactoryActive, close, containsBean, containsBeanDefinition, containsLocalBean, destroy, destroyBeans, doClose, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getApplicationStartup, getBean, getBean, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanProvider, getBeanProvider, getBeanProvider, getBeanProvider, getBeansOfType, getBeansOfType, getBeansWithAnnotation, getDisplayName, getEnvironment, getId, getInternalParentBeanFactory, getInternalParentMessageSource, getMessage, getMessage, getMessage, getParent, getParentBeanFactory, getStartupDate, getType, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, invokeBeanFactoryPostProcessors, isActive, isPrototype, isRunning, isSingleton, isTypeMatch, isTypeMatch, obtainFreshBeanFactory, onClose, prepareBeanFactory, publishEvent, publishEvent, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, resetCommonCaches, setDisplayName, setId, start, stop, toStringaddProtocolResolver, clearResourceCaches, getProtocolResolvers, getResourceCacheclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaddApplicationListener, addBeanFactoryPostProcessor, addProtocolResolver, close, getApplicationStartup, getBeanFactory, getEnvironment, isActive, refresh, registerShutdownHook, setApplicationStartup, setClassLoader, setId, setParentgetAutowireCapableBeanFactory, getDisplayName, getId, getParent, getStartupDatecontainsBeanDefinition, findAnnotationOnBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanProvider, getBeanProvider, getBeansOfType, getBeansOfType, getBeansWithAnnotationcontainsLocalBean, getParentBeanFactorycontainsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getBeanProvider, getBeanProvider, getType, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatchgetMessage, getMessage, getMessagepublishEvent, publishEventgetResourcesgetClassLoader, getResourcecontainsBeanDefinition, getBeanDefinitionCount, getBeanDefinitionNamesgetAliasespublic AnnotationConfigServletWebApplicationContext()
AnnotationConfigServletWebApplicationContext that needs to be
 populated through register(java.lang.Class<?>...) calls and then manually refreshed.public AnnotationConfigServletWebApplicationContext(DefaultListableBeanFactory beanFactory)
AnnotationConfigServletWebApplicationContext with the given
 DefaultListableBeanFactory. The context needs to be populated through
 register(java.lang.Class<?>...) calls and then manually refreshed.beanFactory - the DefaultListableBeanFactory instance to use for this contextpublic AnnotationConfigServletWebApplicationContext(Class<?>... annotatedClasses)
AnnotationConfigServletWebApplicationContext, deriving bean
 definitions from the given annotated classes and automatically refreshing the
 context.annotatedClasses - one or more annotated classes, e.g. @Configuration
 classespublic AnnotationConfigServletWebApplicationContext(String... basePackages)
AnnotationConfigServletWebApplicationContext, scanning for
 bean definitions in the given packages and automatically refreshing the context.basePackages - the packages to check for annotated classespublic void setEnvironment(ConfigurableEnvironment environment)
 Delegates given environment to underlying AnnotatedBeanDefinitionReader and
 ClassPathBeanDefinitionScanner members.
setEnvironment in interface ConfigurableApplicationContextsetEnvironment in class AbstractApplicationContextpublic 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...).
beanNameGenerator - the bean name generatorAnnotatedBeanDefinitionReader.setBeanNameGenerator(org.springframework.beans.factory.support.BeanNameGenerator), 
ClassPathBeanDefinitionScanner.setBeanNameGenerator(org.springframework.beans.factory.support.BeanNameGenerator)public void setScopeMetadataResolver(ScopeMetadataResolver scopeMetadataResolver)
ScopeMetadataResolver to use for detected bean classes.
 
 The default is an AnnotationScopeMetadataResolver.
 
 Any call to this method must occur prior to calls to register(Class...)
 and/or scan(String...).
scopeMetadataResolver - the scope metadata resolverpublic final void register(Class<?>... annotatedClasses)
AbstractApplicationContext.refresh() must be called in order for the context to fully process the new
 class.
 
 Calls to #register are idempotent; adding the same annotated class more
 than once has no additional effect.
register in interface AnnotationConfigRegistryannotatedClasses - one or more annotated classes, e.g. @Configuration
 classesscan(String...), 
AbstractApplicationContext.refresh()public final void scan(String... basePackages)
AbstractApplicationContext.refresh()
 must be called in order for the context to fully process the new class.scan in interface AnnotationConfigRegistrybasePackages - the packages to check for annotated classesregister(Class...), 
AbstractApplicationContext.refresh()protected void prepareRefresh()
prepareRefresh in class AbstractApplicationContextprotected void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
postProcessBeanFactory in class GenericWebApplicationContextpublic <T> void registerBean(String beanName, Class<T> beanClass, Supplier<T> supplier, BeanDefinitionCustomizer... customizers)
registerBean in class GenericApplicationContext