Class AnnotationConfigReactiveWebServerApplicationContext
- All Implemented Interfaces:
Closeable,AutoCloseable,BeanFactory,HierarchicalBeanFactory,ListableBeanFactory,BeanDefinitionRegistry,ConfigurableWebServerApplicationContext,WebServerApplicationContext,ConfigurableReactiveWebApplicationContext,ReactiveWebApplicationContext,AnnotationConfigRegistry,ApplicationContext,ApplicationEventPublisher,ConfigurableApplicationContext,Lifecycle,MessageSource,AliasRegistry,EnvironmentCapable,ResourceLoader,ResourcePatternResolver
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:
- 2.0.0
- Author:
- Phillip Webb
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.core.io.DefaultResourceLoader
DefaultResourceLoader.ClassPathContextResource -
Field Summary
Fields inherited from class org.springframework.context.support.AbstractApplicationContext
APPLICATION_EVENT_MULTICASTER_BEAN_NAME, LIFECYCLE_PROCESSOR_BEAN_NAME, logger, MESSAGE_SOURCE_BEAN_NAMEFields inherited from interface org.springframework.beans.factory.BeanFactory
FACTORY_BEAN_PREFIX, FACTORY_BEAN_PREFIX_CHARFields inherited from interface org.springframework.context.ConfigurableApplicationContext
APPLICATION_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.core.io.ResourceLoader
CLASSPATH_URL_PREFIXFields inherited from interface org.springframework.core.io.support.ResourcePatternResolver
CLASSPATH_ALL_URL_PREFIX -
Constructor Summary
ConstructorsConstructorDescriptionCreate a newAnnotationConfigReactiveWebServerApplicationContextthat needs to be populated throughregister(java.lang.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 Summary
Modifier 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 org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext
doClose, getHttpHandler, getServerNamespace, getWebServer, getWebServerFactory, getWebServerFactoryBeanName, onRefresh, refresh, setServerNamespaceMethods inherited from class org.springframework.boot.web.reactive.context.GenericReactiveWebApplicationContext
createEnvironment, getResourceByPathMethods inherited from class org.springframework.context.support.GenericApplicationContext
cancelRefresh, 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.AbstractApplicationContext
addApplicationListener, 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, 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, prepareBeanFactory, publishEvent, publishEvent, publishEvent, registerBeanPostProcessors, registerListeners, registerShutdownHook, removeApplicationListener, resetCommonCaches, setDisplayName, setId, start, stop, toStringMethods inherited from class org.springframework.core.io.DefaultResourceLoader
addProtocolResolver, getProtocolResolvers, getResourceCacheMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.springframework.core.AliasRegistry
getAliasesMethods inherited from interface org.springframework.context.ApplicationContext
getApplicationName, getAutowireCapableBeanFactory, getDisplayName, getId, getParent, getStartupDateMethods inherited from interface org.springframework.context.ApplicationEventPublisher
publishEvent, publishEventMethods inherited from interface org.springframework.beans.factory.support.BeanDefinitionRegistry
containsBeanDefinition, getBeanDefinitionCount, getBeanDefinitionNamesMethods inherited from interface org.springframework.beans.factory.BeanFactory
containsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getBeanProvider, getBeanProvider, getType, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatchMethods inherited from interface org.springframework.context.ConfigurableApplicationContext
addApplicationListener, addBeanFactoryPostProcessor, addProtocolResolver, close, getApplicationStartup, getBeanFactory, getEnvironment, isActive, isClosed, registerShutdownHook, removeApplicationListener, setApplicationStartup, setClassLoader, setId, setParentMethods inherited from interface org.springframework.beans.factory.HierarchicalBeanFactory
containsLocalBean, getParentBeanFactoryMethods inherited from interface org.springframework.beans.factory.ListableBeanFactory
containsBeanDefinition, findAllAnnotationsOnBean, findAnnotationOnBean, findAnnotationOnBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanProvider, getBeanProvider, getBeansOfType, getBeansOfType, getBeansWithAnnotationMethods inherited from interface org.springframework.context.MessageSource
getMessage, getMessage, getMessageMethods inherited from interface org.springframework.core.io.ResourceLoader
getClassLoader, getResourceMethods inherited from interface org.springframework.core.io.support.ResourcePatternResolver
getResources
-
Constructor Details
-
AnnotationConfigReactiveWebServerApplicationContext
public AnnotationConfigReactiveWebServerApplicationContext()Create a newAnnotationConfigReactiveWebServerApplicationContextthat needs to be populated throughregister(java.lang.Class<?>...)calls and then manually refreshed. -
AnnotationConfigReactiveWebServerApplicationContext
Create a newAnnotationConfigReactiveWebServerApplicationContextwith 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
-
AnnotationConfigReactiveWebServerApplicationContext
Create 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
-
AnnotationConfigReactiveWebServerApplicationContext
Create 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
-
setEnvironment
Delegates given environment to underlying
AnnotatedBeanDefinitionReaderandClassPathBeanDefinitionScannermembers.- Specified by:
setEnvironmentin interfaceConfigurableApplicationContext- Overrides:
setEnvironmentin classAbstractApplicationContext
-
setBeanNameGenerator
Provide 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:
-
setScopeMetadataResolver
Set 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
-
register
Register 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 interfaceAnnotationConfigRegistry- Parameters:
annotatedClasses- one or more annotated classes, e.g.@Configurationclasses- See Also:
-
scan
Perform 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 interfaceAnnotationConfigRegistry- Parameters:
basePackages- the packages to check for annotated classes- See Also:
-
prepareRefresh
protected void prepareRefresh()- Overrides:
prepareRefreshin classAbstractApplicationContext
-
postProcessBeanFactory
- Overrides:
postProcessBeanFactoryin classAbstractApplicationContext
-