Class AnnotationConfigReactiveWebServerApplicationContext
java.lang.Object
org.springframework.core.io.DefaultResourceLoader
org.springframework.context.support.AbstractApplicationContext
org.springframework.context.support.GenericApplicationContext
org.springframework.boot.web.context.reactive.GenericReactiveWebApplicationContext
org.springframework.boot.web.server.reactive.context.ReactiveWebServerApplicationContext
org.springframework.boot.web.server.reactive.context.AnnotationConfigReactiveWebServerApplicationContext
- All Implemented Interfaces:
- Closeable, AutoCloseable, BeanFactory, HierarchicalBeanFactory, ListableBeanFactory, BeanDefinitionRegistry, ConfigurableReactiveWebApplicationContext, ReactiveWebApplicationContext, ConfigurableWebServerApplicationContext, WebServerApplicationContext, AnnotationConfigRegistry, ApplicationContext, ApplicationEventPublisher, ConfigurableApplicationContext, Lifecycle, MessageSource, AliasRegistry, EnvironmentCapable, ResourceLoader, ResourcePatternResolver
public class AnnotationConfigReactiveWebServerApplicationContext
extends ReactiveWebServerApplicationContext
implements AnnotationConfigRegistry
ReactiveWebServerApplicationContext 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:
- 4.0.0
- Author:
- Phillip Webb
- See Also:
- 
Nested Class SummaryNested classes/interfaces inherited from class DefaultResourceLoaderDefaultResourceLoader.ClassPathContextResource
- 
Field SummaryFields inherited from class AbstractApplicationContextAPPLICATION_EVENT_MULTICASTER_BEAN_NAME, LIFECYCLE_PROCESSOR_BEAN_NAME, logger, MESSAGE_SOURCE_BEAN_NAMEFields inherited from interface BeanFactoryFACTORY_BEAN_PREFIX, FACTORY_BEAN_PREFIX_CHARFields inherited from interface 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 ResourceLoaderCLASSPATH_URL_PREFIXFields inherited from interface ResourcePatternResolverCLASSPATH_ALL_URL_PREFIXFields inherited from interface WebServerApplicationContextGRACEFUL_SHUTDOWN_PHASE, START_STOP_LIFECYCLE_PHASE
- 
Constructor SummaryConstructorsConstructorDescriptionCreate a newAnnotationConfigReactiveWebServerApplicationContextthat needs to be populated throughregister(Class...)calls and then manually refreshed.AnnotationConfigReactiveWebServerApplicationContext(Class<?>... annotatedClasses) Create a newAnnotationConfigReactiveWebServerApplicationContext, deriving bean definitions from the given annotated classes and automatically refreshing the context.AnnotationConfigReactiveWebServerApplicationContext(String... basePackages) Create a newAnnotationConfigReactiveWebServerApplicationContext, scanning for bean definitions in the given packages and automatically refreshing the context.Create a newAnnotationConfigReactiveWebServerApplicationContextwith the givenDefaultListableBeanFactory.
- 
Method SummaryModifier and TypeMethodDescriptionprotected voidpostProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) 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 ReactiveWebServerApplicationContextdoClose, getHttpHandler, getServerNamespace, getWebServer, getWebServerFactory, getWebServerFactoryBeanName, onRefresh, refresh, setServerNamespaceMethods inherited from class GenericReactiveWebApplicationContextcreateEnvironment, getResourceByPathMethods inherited from class GenericApplicationContextcancelRefresh, closeBeanFactory, getAutowireCapableBeanFactory, getBeanDefinition, getBeanFactory, getClassLoader, getDefaultListableBeanFactory, getResource, getResources, isAlias, isBeanDefinitionOverridable, isBeanNameInUse, refreshBeanFactory, refreshForAotProcessing, register, registerAlias, registerBean, registerBean, registerBean, registerBean, registerBean, registerBean, registerBeanDefinition, removeAlias, removeBeanDefinition, setAllowBeanDefinitionOverriding, setAllowCircularReferences, setApplicationStartup, setClassLoader, setParent, setResourceLoaderMethods inherited from class AbstractApplicationContextaddApplicationListener, addBeanFactoryPostProcessor, assertBeanFactoryActive, clearResourceCaches, close, containsBean, containsBeanDefinition, containsLocalBean, destroyBeans, findAllAnnotationsOnBean, findAnnotationOnBean, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getApplicationName, getApplicationStartup, getBean, getBean, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanProvider, getBeanProvider, getBeanProvider, 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, isClosed, isPrototype, isRunning, isSingleton, isTypeMatch, isTypeMatch, obtainFreshBeanFactory, onClose, pause, prepareBeanFactory, publishEvent, publishEvent, publishEvent, registerBeanPostProcessors, registerListeners, registerShutdownHook, removeApplicationListener, resetCommonCaches, restart, setDisplayName, setId, start, stop, toStringMethods inherited from class DefaultResourceLoaderaddProtocolResolver, getProtocolResolvers, getResourceCacheMethods inherited from class Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface AliasRegistrygetAliasesMethods inherited from interface AnnotationConfigRegistryregisterMethods inherited from interface ApplicationContextgetApplicationName, getAutowireCapableBeanFactory, getDisplayName, getId, getParent, getStartupDateMethods inherited from interface ApplicationEventPublisherpublishEvent, publishEventMethods inherited from interface BeanDefinitionRegistrycontainsBeanDefinition, getBeanDefinitionCount, getBeanDefinitionNamesMethods inherited from interface BeanFactorycontainsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getBeanProvider, getBeanProvider, getBeanProvider, getType, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatchMethods inherited from interface ConfigurableApplicationContextaddApplicationListener, addBeanFactoryPostProcessor, addProtocolResolver, close, getApplicationStartup, getBeanFactory, getEnvironment, isActive, isClosed, pause, registerShutdownHook, removeApplicationListener, restart, setApplicationStartup, setClassLoader, setId, setParentMethods inherited from interface HierarchicalBeanFactorycontainsLocalBean, getParentBeanFactoryMethods inherited from interface ListableBeanFactorycontainsBeanDefinition, findAllAnnotationsOnBean, findAnnotationOnBean, findAnnotationOnBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanProvider, getBeanProvider, getBeansOfType, getBeansOfType, getBeansWithAnnotationMethods inherited from interface MessageSourcegetMessage, getMessage, getMessageMethods inherited from interface ResourceLoadergetClassLoader, getResourceMethods inherited from interface ResourcePatternResolvergetResources
- 
Constructor Details- 
AnnotationConfigReactiveWebServerApplicationContextpublic AnnotationConfigReactiveWebServerApplicationContext()Create a newAnnotationConfigReactiveWebServerApplicationContextthat needs to be populated throughregister(Class...)calls and then manually refreshed.
- 
AnnotationConfigReactiveWebServerApplicationContextCreate a newAnnotationConfigReactiveWebServerApplicationContextwith the givenDefaultListableBeanFactory. The context needs to be populated throughregister(Class...)calls and then manually refreshed.- Parameters:
- beanFactory- the DefaultListableBeanFactory instance to use for this context
 
- 
AnnotationConfigReactiveWebServerApplicationContextCreate a newAnnotationConfigReactiveWebServerApplicationContext, deriving bean definitions from the given annotated classes and automatically refreshing the context.- Parameters:
- annotatedClasses- one or more annotated classes, e.g.- @Configurationclasses
 
- 
AnnotationConfigReactiveWebServerApplicationContextCreate a newAnnotationConfigReactiveWebServerApplicationContext, 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 thatReactiveWebServerApplicationContext.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 thatReactiveWebServerApplicationContext.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
 
- 
postProcessBeanFactory- Overrides:
- postProcessBeanFactoryin class- AbstractApplicationContext
 
 
-