public class AnnotationConfigEmbeddedWebApplicationContext extends EmbeddedWebApplicationContext
EmbeddedWebApplicationContext
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...)
,
EmbeddedWebApplicationContext
,
AnnotationConfigWebApplicationContext
DISPATCHER_SERVLET_NAME
Constructor and Description |
---|
AnnotationConfigEmbeddedWebApplicationContext()
Create a new
AnnotationConfigEmbeddedWebApplicationContext that needs to be
populated through register(java.lang.Class<?>...) calls and then manually refreshed. |
AnnotationConfigEmbeddedWebApplicationContext(Class<?>... annotatedClasses)
Create a new
AnnotationConfigEmbeddedWebApplicationContext , deriving bean
definitions from the given annotated classes and automatically refreshing the
context. |
AnnotationConfigEmbeddedWebApplicationContext(String... basePackages)
Create a new
AnnotationConfigEmbeddedWebApplicationContext , scanning for
bean definitions in the given packages and automatically refreshing the context. |
Modifier and Type | Method and Description |
---|---|
protected void |
postProcessBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)
Register ServletContextAwareProcessor.
|
protected void |
prepareRefresh() |
void |
refresh() |
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(org.springframework.beans.factory.support.BeanNameGenerator beanNameGenerator)
Provide a custom
BeanNameGenerator for use with
AnnotatedBeanDefinitionReader and/or ClassPathBeanDefinitionScanner
, if any. |
void |
setEnvironment(org.springframework.core.env.ConfigurableEnvironment environment) |
void |
setScopeMetadataResolver(org.springframework.context.annotation.ScopeMetadataResolver scopeMetadataResolver)
Set the
ScopeMetadataResolver to use for detected bean classes. |
doClose, finishRefresh, getEmbeddedServletContainer, getEmbeddedServletContainerFactory, getNamespace, getResourceByPath, getServletConfig, getServletContextInitializerBeans, onRefresh, prepareEmbeddedWebApplicationContext, setNamespace, setServletConfig
public AnnotationConfigEmbeddedWebApplicationContext()
AnnotationConfigEmbeddedWebApplicationContext
that needs to be
populated through register(java.lang.Class<?>...)
calls and then manually refreshed.public AnnotationConfigEmbeddedWebApplicationContext(Class<?>... annotatedClasses)
AnnotationConfigEmbeddedWebApplicationContext
, deriving bean
definitions from the given annotated classes and automatically refreshing the
context.annotatedClasses
- one or more annotated classes, e.g. @Configuration
classespublic AnnotationConfigEmbeddedWebApplicationContext(String... basePackages)
AnnotationConfigEmbeddedWebApplicationContext
, scanning for
bean definitions in the given packages and automatically refreshing the context.basePackages
- the packages to check for annotated classespublic void setEnvironment(org.springframework.core.env.ConfigurableEnvironment environment)
Delegates given environment to underlying AnnotatedBeanDefinitionReader
and
ClassPathBeanDefinitionScanner
members.
public void setBeanNameGenerator(org.springframework.beans.factory.support.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...)
.
AnnotatedBeanDefinitionReader.setBeanNameGenerator(org.springframework.beans.factory.support.BeanNameGenerator)
,
ClassPathBeanDefinitionScanner.setBeanNameGenerator(org.springframework.beans.factory.support.BeanNameGenerator)
public void setScopeMetadataResolver(org.springframework.context.annotation.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...)
.
public final void register(Class<?>... annotatedClasses)
refresh()
must be called in order for the context to fully process the new
class.
Calls to register(java.lang.Class<?>...)
are idempotent; adding the same annotated class more
than once has no additional effect.
annotatedClasses
- one or more annotated classes, e.g. @Configuration
classesscan(String...)
,
refresh()
public final void scan(String... basePackages)
refresh()
must be called in order for the context to fully process the new class.basePackages
- the packages to check for annotated classesregister(Class...)
,
refresh()
protected void prepareRefresh()
protected void postProcessBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)
EmbeddedWebApplicationContext
postProcessBeanFactory
in class EmbeddedWebApplicationContext
ServletContextAwareProcessor
public final void refresh() throws org.springframework.beans.BeansException, IllegalStateException
org.springframework.beans.BeansException
IllegalStateException
Copyright © 2013. All rights reserved.