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 via an extra Configuration class.
register(Class...)
,
scan(String...)
,
ReactiveWebServerApplicationContext
,
AnnotationConfigApplicationContext
DefaultResourceLoader.ClassPathContextResource
APPLICATION_EVENT_MULTICASTER_BEAN_NAME, LIFECYCLE_PROCESSOR_BEAN_NAME, logger, MESSAGE_SOURCE_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
FACTORY_BEAN_PREFIX
CLASSPATH_ALL_URL_PREFIX
CLASSPATH_URL_PREFIX
Constructor and Description |
---|
AnnotationConfigReactiveWebServerApplicationContext()
Create a new
AnnotationConfigReactiveWebServerApplicationContext that needs
to be populated through register(java.lang.Class<?>...) calls and then manually
refreshed. |
AnnotationConfigReactiveWebServerApplicationContext(Class<?>... annotatedClasses)
Create a new
AnnotationConfigReactiveWebServerApplicationContext , deriving
bean definitions from the given annotated classes and automatically refreshing the
context. |
AnnotationConfigReactiveWebServerApplicationContext(DefaultListableBeanFactory beanFactory)
Create a new
AnnotationConfigReactiveWebServerApplicationContext with the
given DefaultListableBeanFactory . |
AnnotationConfigReactiveWebServerApplicationContext(String... basePackages)
Create a new
AnnotationConfigReactiveWebServerApplicationContext , 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.
|
void |
scan(String... basePackages)
Perform a scan within the specified base packages.
|
void |
setBeanNameGenerator(BeanNameGenerator beanNameGenerator)
Provide a custom
BeanNameGenerator for use with
AnnotatedBeanDefinitionReader and/or
ClassPathBeanDefinitionScanner , if any. |
void |
setEnvironment(ConfigurableEnvironment environment) |
void |
setScopeMetadataResolver(ScopeMetadataResolver scopeMetadataResolver)
Set the
ScopeMetadataResolver to use for detected bean classes. |
doClose, getHttpHandler, getServerNamespace, getWebServer, getWebServerFactory, getWebServerFactoryBeanName, onRefresh, refresh, setServerNamespace
createEnvironment, getResourceByPath
cancelRefresh, closeBeanFactory, getAutowireCapableBeanFactory, getBeanDefinition, getBeanFactory, getClassLoader, getDefaultListableBeanFactory, getResource, getResources, isAlias, isBeanNameInUse, refreshBeanFactory, registerAlias, registerBean, registerBean, registerBean, registerBean, registerBean, registerBean, registerBeanDefinition, removeAlias, removeBeanDefinition, setAllowBeanDefinitionOverriding, setAllowCircularReferences, setClassLoader, setParent, setResourceLoader
addApplicationListener, addBeanFactoryPostProcessor, assertBeanFactoryActive, close, containsBean, containsBeanDefinition, containsLocalBean, destroy, destroyBeans, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getApplicationName, getBean, getBean, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, 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, resetCommonCaches, setDisplayName, setId, start, stop, toString
addProtocolResolver, clearResourceCaches, getProtocolResolvers, getResourceCache
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addApplicationListener, addBeanFactoryPostProcessor, addProtocolResolver, close, getBeanFactory, getEnvironment, isActive, registerShutdownHook, setClassLoader, setId, setParent
hasServerNamespace
getApplicationName, getAutowireCapableBeanFactory, getDisplayName, getId, getParent, getStartupDate
containsBeanDefinition, findAnnotationOnBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType, getBeansWithAnnotation
containsLocalBean, getParentBeanFactory
containsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getBeanProvider, getBeanProvider, getType, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatch
getMessage, getMessage, getMessage
publishEvent, publishEvent
getResources
getClassLoader, getResource
containsBeanDefinition, getBeanDefinitionCount, getBeanDefinitionNames
getAliases
public AnnotationConfigReactiveWebServerApplicationContext()
AnnotationConfigReactiveWebServerApplicationContext
that needs
to be populated through register(java.lang.Class<?>...)
calls and then manually
refreshed.public AnnotationConfigReactiveWebServerApplicationContext(DefaultListableBeanFactory beanFactory)
AnnotationConfigReactiveWebServerApplicationContext
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 AnnotationConfigReactiveWebServerApplicationContext(Class<?>... annotatedClasses)
AnnotationConfigReactiveWebServerApplicationContext
, deriving
bean definitions from the given annotated classes and automatically refreshing the
context.annotatedClasses
- one or more annotated classes, e.g. @Configuration
classespublic AnnotationConfigReactiveWebServerApplicationContext(String... basePackages)
AnnotationConfigReactiveWebServerApplicationContext
, 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 ConfigurableApplicationContext
setEnvironment
in class AbstractApplicationContext
public 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)
ReactiveWebServerApplicationContext.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 AnnotationConfigRegistry
annotatedClasses
- one or more annotated classes, e.g. @Configuration
classesscan(String...)
,
ReactiveWebServerApplicationContext.refresh()
public final void scan(String... basePackages)
ReactiveWebServerApplicationContext.refresh()
must be called in order for the context to fully process the new class.scan
in interface AnnotationConfigRegistry
basePackages
- the packages to check for annotated classesregister(Class...)
,
ReactiveWebServerApplicationContext.refresh()
protected void prepareRefresh()
prepareRefresh
in class AbstractApplicationContext
protected void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
postProcessBeanFactory
in class AbstractApplicationContext