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 via 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_NAME
Fields inherited from interface org.springframework.beans.factory.BeanFactory
FACTORY_BEAN_PREFIX
Fields inherited from interface org.springframework.context.ConfigurableApplicationContext
APPLICATION_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_NAME
Fields inherited from interface org.springframework.core.io.ResourceLoader
CLASSPATH_URL_PREFIX
Fields inherited from interface org.springframework.core.io.support.ResourcePatternResolver
CLASSPATH_ALL_URL_PREFIX
-
Constructor Summary
ConstructorDescriptionCreate a newAnnotationConfigReactiveWebServerApplicationContext
that 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 newAnnotationConfigReactiveWebServerApplicationContext
with the givenDefaultListableBeanFactory
. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
postProcessBeanFactory
(ConfigurableListableBeanFactory beanFactory) protected void
final void
Register one or more annotated classes to be processed.final void
Perform a scan within the specified base packages.void
setBeanNameGenerator
(BeanNameGenerator beanNameGenerator) Provide a customBeanNameGenerator
for use withAnnotatedBeanDefinitionReader
and/orClassPathBeanDefinitionScanner
, if any.void
setEnvironment
(ConfigurableEnvironment environment) void
setScopeMetadataResolver
(ScopeMetadataResolver scopeMetadataResolver) Set theScopeMetadataResolver
to use for detected bean classes.Methods inherited from class org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext
doClose, getHttpHandler, getServerNamespace, getWebServer, getWebServerFactory, getWebServerFactoryBeanName, onRefresh, refresh, setServerNamespace
Methods inherited from class org.springframework.boot.web.reactive.context.GenericReactiveWebApplicationContext
createEnvironment, getResourceByPath
Methods inherited from class org.springframework.context.support.GenericApplicationContext
cancelRefresh, closeBeanFactory, getAutowireCapableBeanFactory, getBeanDefinition, getBeanFactory, getClassLoader, getDefaultListableBeanFactory, getResource, getResources, isAlias, isBeanNameInUse, refreshBeanFactory, refreshForAotProcessing, registerAlias, registerBean, registerBean, registerBean, registerBean, registerBean, registerBean, registerBeanDefinition, removeAlias, removeBeanDefinition, setAllowBeanDefinitionOverriding, setAllowCircularReferences, setApplicationStartup, setClassLoader, setParent, setResourceLoader
Methods inherited from class org.springframework.context.support.AbstractApplicationContext
addApplicationListener, addBeanFactoryPostProcessor, assertBeanFactoryActive, close, containsBean, containsBeanDefinition, containsLocalBean, destroyBeans, 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, isPrototype, isRunning, isSingleton, isTypeMatch, isTypeMatch, obtainFreshBeanFactory, onClose, prepareBeanFactory, publishEvent, publishEvent, publishEvent, registerBeanPostProcessors, registerListeners, registerShutdownHook, removeApplicationListener, resetCommonCaches, setDisplayName, setId, start, stop, toString
Methods inherited from class org.springframework.core.io.DefaultResourceLoader
addProtocolResolver, clearResourceCaches, getProtocolResolvers, getResourceCache
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.springframework.core.AliasRegistry
getAliases
Methods inherited from interface org.springframework.context.ApplicationContext
getApplicationName, getAutowireCapableBeanFactory, getDisplayName, getId, getParent, getStartupDate
Methods inherited from interface org.springframework.context.ApplicationEventPublisher
publishEvent, publishEvent
Methods inherited from interface org.springframework.beans.factory.support.BeanDefinitionRegistry
containsBeanDefinition, getBeanDefinitionCount, getBeanDefinitionNames
Methods inherited from interface org.springframework.beans.factory.BeanFactory
containsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getBeanProvider, getBeanProvider, getType, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatch
Methods inherited from interface org.springframework.context.ConfigurableApplicationContext
addApplicationListener, addBeanFactoryPostProcessor, addProtocolResolver, close, getApplicationStartup, getBeanFactory, getEnvironment, isActive, registerShutdownHook, removeApplicationListener, setApplicationStartup, setClassLoader, setId, setParent
Methods inherited from interface org.springframework.beans.factory.HierarchicalBeanFactory
containsLocalBean, getParentBeanFactory
Methods inherited from interface org.springframework.beans.factory.ListableBeanFactory
containsBeanDefinition, findAnnotationOnBean, findAnnotationOnBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanProvider, getBeanProvider, getBeansOfType, getBeansOfType, getBeansWithAnnotation
Methods inherited from interface org.springframework.context.MessageSource
getMessage, getMessage, getMessage
Methods inherited from interface org.springframework.core.io.ResourceLoader
getClassLoader, getResource
Methods inherited from interface org.springframework.core.io.support.ResourcePatternResolver
getResources
-
Constructor Details
-
AnnotationConfigReactiveWebServerApplicationContext
public AnnotationConfigReactiveWebServerApplicationContext()Create a newAnnotationConfigReactiveWebServerApplicationContext
that needs to be populated throughregister(java.lang.Class<?>...)
calls and then manually refreshed. -
AnnotationConfigReactiveWebServerApplicationContext
Create a newAnnotationConfigReactiveWebServerApplicationContext
with 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.@Configuration
classes
-
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
AnnotatedBeanDefinitionReader
andClassPathBeanDefinitionScanner
members.- Specified by:
setEnvironment
in interfaceConfigurableApplicationContext
- Overrides:
setEnvironment
in classAbstractApplicationContext
-
setBeanNameGenerator
Provide a customBeanNameGenerator
for use withAnnotatedBeanDefinitionReader
and/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 theScopeMetadataResolver
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/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
#register
are idempotent; adding the same annotated class more than once has no additional effect.- Specified by:
register
in interfaceAnnotationConfigRegistry
- Parameters:
annotatedClasses
- one or more annotated classes, e.g.@Configuration
classes- 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:
scan
in interfaceAnnotationConfigRegistry
- Parameters:
basePackages
- the packages to check for annotated classes- See Also:
-
prepareRefresh
protected void prepareRefresh()- Overrides:
prepareRefresh
in classAbstractApplicationContext
-
postProcessBeanFactory
- Overrides:
postProcessBeanFactory
in classAbstractApplicationContext
-