Class AnnotationConfigServletWebServerApplicationContext
- All Implemented Interfaces:
- Closeable,- AutoCloseable,- BeanFactory,- HierarchicalBeanFactory,- ListableBeanFactory,- BeanDefinitionRegistry,- ConfigurableWebServerApplicationContext,- WebServerApplicationContext,- AnnotationConfigRegistry,- ApplicationContext,- ApplicationEventPublisher,- ConfigurableApplicationContext,- Lifecycle,- MessageSource,- AliasRegistry,- EnvironmentCapable,- ResourceLoader,- ResourcePatternResolver,- ThemeSource,- ConfigurableWebApplicationContext,- WebApplicationContext
ServletWebServerApplicationContext that 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 through an extra Configuration class.
- Since:
- 1.0.0
- Author:
- Phillip Webb
- See Also:
- 
Nested Class SummaryNested classes/interfaces inherited from class org.springframework.boot.web.servlet.context.ServletWebServerApplicationContextServletWebServerApplicationContext.ExistingWebApplicationScopesNested classes/interfaces inherited from class org.springframework.core.io.DefaultResourceLoaderDefaultResourceLoader.ClassPathContextResource
- 
Field SummaryFields inherited from class org.springframework.boot.web.servlet.context.ServletWebServerApplicationContextDISPATCHER_SERVLET_NAMEFields inherited from class org.springframework.context.support.AbstractApplicationContextAPPLICATION_EVENT_MULTICASTER_BEAN_NAME, LIFECYCLE_PROCESSOR_BEAN_NAME, MESSAGE_SOURCE_BEAN_NAMEFields inherited from interface org.springframework.beans.factory.BeanFactoryFACTORY_BEAN_PREFIX, FACTORY_BEAN_PREFIX_CHARFields inherited from interface org.springframework.context.ConfigurableApplicationContextAPPLICATION_STARTUP_BEAN_NAME, BOOTSTRAP_EXECUTOR_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_NAMEFields inherited from interface org.springframework.web.context.ConfigurableWebApplicationContextAPPLICATION_CONTEXT_ID_PREFIX, SERVLET_CONFIG_BEAN_NAMEFields inherited from interface org.springframework.core.io.ResourceLoaderCLASSPATH_URL_PREFIXFields inherited from interface org.springframework.core.io.support.ResourcePatternResolverCLASSPATH_ALL_URL_PREFIXFields inherited from interface org.springframework.web.context.WebApplicationContextCONTEXT_ATTRIBUTES_BEAN_NAME, CONTEXT_PARAMETERS_BEAN_NAME, ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, SCOPE_APPLICATION, SCOPE_REQUEST, SCOPE_SESSION, SERVLET_CONTEXT_BEAN_NAME
- 
Constructor SummaryConstructorsConstructorDescriptionCreate a newAnnotationConfigServletWebServerApplicationContextthat needs to be populated throughregister(java.lang.Class<?>...)calls and then manually refreshed.AnnotationConfigServletWebServerApplicationContext(Class<?>... annotatedClasses) Create a newAnnotationConfigServletWebServerApplicationContext, deriving bean definitions from the given annotated classes and automatically refreshing the context.AnnotationConfigServletWebServerApplicationContext(String... basePackages) Create a newAnnotationConfigServletWebServerApplicationContext, scanning for bean definitions in the given packages and automatically refreshing the context.Create a newAnnotationConfigServletWebServerApplicationContextwith the givenDefaultListableBeanFactory.
- 
Method SummaryModifier and TypeMethodDescriptionprotected voidpostProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) Register ServletContextAwareProcessor.protected voidfinal voidRegister one or more annotated classes to be processed.final voidPerform a scan within the specified base packages.voidsetBeanNameGenerator(BeanNameGenerator beanNameGenerator) Provide a customBeanNameGeneratorfor use withAnnotatedBeanDefinitionReaderand/orClassPathBeanDefinitionScanner, if any.voidsetEnvironment(ConfigurableEnvironment environment) voidsetScopeMetadataResolver(ScopeMetadataResolver scopeMetadataResolver) Set theScopeMetadataResolverto use for detected bean classes.Methods inherited from class org.springframework.boot.web.servlet.context.ServletWebServerApplicationContextdoClose, getResourceByPath, getServerNamespace, getServletConfig, getServletContextInitializerBeans, getWebServer, getWebServerFactory, onRefresh, prepareWebApplicationContext, refresh, setServerNamespace, setServletConfigMethods inherited from class org.springframework.web.context.support.GenericWebApplicationContextcreateEnvironment, getApplicationName, getConfigLocations, getNamespace, getResourcePatternResolver, getServletContext, getTheme, initPropertySources, setConfigLocation, setConfigLocations, setNamespace, setServletContextMethods inherited from class org.springframework.context.support.GenericApplicationContextcancelRefresh, closeBeanFactory, getAutowireCapableBeanFactory, getBeanDefinition, getBeanFactory, getClassLoader, getDefaultListableBeanFactory, getResource, getResources, isAlias, isBeanDefinitionOverridable, isBeanNameInUse, refreshBeanFactory, refreshForAotProcessing, registerAlias, registerBean, registerBean, registerBean, registerBean, registerBean, registerBean, registerBeanDefinition, removeAlias, removeBeanDefinition, setAllowBeanDefinitionOverriding, setAllowCircularReferences, setApplicationStartup, setClassLoader, setParent, setResourceLoaderMethods inherited from class org.springframework.context.support.AbstractApplicationContextaddApplicationListener, addBeanFactoryPostProcessor, assertBeanFactoryActive, clearResourceCaches, close, containsBean, containsBeanDefinition, containsLocalBean, destroyBeans, findAllAnnotationsOnBean, findAnnotationOnBean, 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, isClosed, isPrototype, isRunning, isSingleton, isTypeMatch, isTypeMatch, obtainFreshBeanFactory, onClose, prepareBeanFactory, publishEvent, publishEvent, publishEvent, registerBeanPostProcessors, registerListeners, registerShutdownHook, removeApplicationListener, resetCommonCaches, setDisplayName, setId, start, stop, toStringMethods inherited from class org.springframework.core.io.DefaultResourceLoaderaddProtocolResolver, getProtocolResolvers, getResourceCacheMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.springframework.core.AliasRegistrygetAliasesMethods inherited from interface org.springframework.context.ApplicationContextgetApplicationName, getAutowireCapableBeanFactory, getDisplayName, getId, getParent, getStartupDateMethods inherited from interface org.springframework.context.ApplicationEventPublisherpublishEvent, publishEventMethods inherited from interface org.springframework.beans.factory.support.BeanDefinitionRegistrycontainsBeanDefinition, getBeanDefinitionCount, getBeanDefinitionNamesMethods inherited from interface org.springframework.beans.factory.BeanFactorycontainsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getBeanProvider, getBeanProvider, getType, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatchMethods inherited from interface org.springframework.context.ConfigurableApplicationContextaddApplicationListener, addBeanFactoryPostProcessor, addProtocolResolver, close, getApplicationStartup, getBeanFactory, getEnvironment, isActive, isClosed, registerShutdownHook, removeApplicationListener, setApplicationStartup, setClassLoader, setId, setParentMethods inherited from interface org.springframework.beans.factory.HierarchicalBeanFactorycontainsLocalBean, getParentBeanFactoryMethods inherited from interface org.springframework.beans.factory.ListableBeanFactorycontainsBeanDefinition, findAllAnnotationsOnBean, findAnnotationOnBean, findAnnotationOnBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanProvider, getBeanProvider, getBeansOfType, getBeansOfType, getBeansWithAnnotationMethods inherited from interface org.springframework.context.MessageSourcegetMessage, getMessage, getMessageMethods inherited from interface org.springframework.core.io.ResourceLoadergetClassLoader, getResourceMethods inherited from interface org.springframework.core.io.support.ResourcePatternResolvergetResources
- 
Constructor Details- 
AnnotationConfigServletWebServerApplicationContextpublic AnnotationConfigServletWebServerApplicationContext()Create a newAnnotationConfigServletWebServerApplicationContextthat needs to be populated throughregister(java.lang.Class<?>...)calls and then manually refreshed.
- 
AnnotationConfigServletWebServerApplicationContextCreate a newAnnotationConfigServletWebServerApplicationContextwith the givenDefaultListableBeanFactory. The context needs to be populated throughregister(java.lang.Class<?>...)calls and then manually refreshed.- Parameters:
- beanFactory- the DefaultListableBeanFactory instance to use for this context
 
- 
AnnotationConfigServletWebServerApplicationContextCreate a newAnnotationConfigServletWebServerApplicationContext, deriving bean definitions from the given annotated classes and automatically refreshing the context.- Parameters:
- annotatedClasses- one or more annotated classes, e.g.- @Configurationclasses
 
- 
AnnotationConfigServletWebServerApplicationContextCreate a newAnnotationConfigServletWebServerApplicationContext, scanning for bean definitions in the given packages and automatically refreshing the context.- Parameters:
- basePackages- the packages to check for annotated classes
 
 
- 
- 
Method Details- 
setEnvironmentDelegates given environment to underlying AnnotatedBeanDefinitionReaderandClassPathBeanDefinitionScannermembers.- Specified by:
- setEnvironmentin interface- ConfigurableApplicationContext
- Overrides:
- setEnvironmentin class- AbstractApplicationContext
 
- 
setBeanNameGeneratorProvide a customBeanNameGeneratorfor use withAnnotatedBeanDefinitionReaderand/orClassPathBeanDefinitionScanner, if any.Default is AnnotationBeanNameGenerator.Any call to this method must occur prior to calls to register(Class...)and/orscan(String...).- Parameters:
- beanNameGenerator- the bean name generator
- See Also:
 
- 
setScopeMetadataResolverSet theScopeMetadataResolverto use for detected bean classes.The default is an AnnotationScopeMetadataResolver.Any call to this method must occur prior to calls to register(Class...)and/orscan(String...).- Parameters:
- scopeMetadataResolver- the scope metadata resolver
 
- 
registerRegister one or more annotated classes to be processed. Note thatServletWebServerApplicationContext.refresh()must be called in order for the context to fully process the new class.Calls to #registerare idempotent; adding the same annotated class more than once has no additional effect.- Specified by:
- registerin interface- AnnotationConfigRegistry
- Parameters:
- annotatedClasses- one or more annotated classes, e.g.- @Configurationclasses
- See Also:
 
- 
scanPerform a scan within the specified base packages. Note thatServletWebServerApplicationContext.refresh()must be called in order for the context to fully process the new class.- Specified by:
- scanin interface- AnnotationConfigRegistry
- Parameters:
- basePackages- the packages to check for annotated classes
- See Also:
 
- 
prepareRefreshprotected void prepareRefresh()- Overrides:
- prepareRefreshin class- AbstractApplicationContext
 
- 
postProcessBeanFactoryDescription copied from class:ServletWebServerApplicationContextRegister ServletContextAwareProcessor.- Overrides:
- postProcessBeanFactoryin class- ServletWebServerApplicationContext
- See Also:
 
 
-