|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.core.io.DefaultResourceLoader org.springframework.context.support.AbstractApplicationContext org.springframework.context.support.GenericApplicationContext org.springframework.context.annotation.AnnotationConfigApplicationContext
public class AnnotationConfigApplicationContext
Standalone application context, accepting annotated classes as input - in particular
@Configuration
-annotated classes, but also plain
@Component
types and JSR-330 compliant
classes using javax.inject
annotations. Allows for registering classes one by
one using register(Class...)
as well as for classpath scanning using
scan(String...)
.
In case of multiple @Configuration
classes, @Bean
methods defined in
later classes will override those defined in earlier classes. This can be leveraged to
deliberately override certain bean definitions via an extra @Configuration
class.
See @Configuration
Javadoc for usage examples.
register(java.lang.Class>...)
,
scan(java.lang.String...)
,
AnnotatedBeanDefinitionReader
,
ClassPathBeanDefinitionScanner
,
GenericXmlApplicationContext
Field Summary | |
---|---|
private AnnotatedBeanDefinitionReader |
reader
|
private ClassPathBeanDefinitionScanner |
scanner
|
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.context.ConfigurableApplicationContext |
---|
CONFIG_LOCATION_DELIMITERS, CONVERSION_SERVICE_BEAN_NAME, ENVIRONMENT_BEAN_NAME, LOAD_TIME_WEAVER_BEAN_NAME, SYSTEM_ENVIRONMENT_BEAN_NAME, SYSTEM_PROPERTIES_BEAN_NAME |
Fields inherited from interface org.springframework.beans.factory.BeanFactory |
---|
FACTORY_BEAN_PREFIX |
Fields inherited from interface org.springframework.core.io.support.ResourcePatternResolver |
---|
CLASSPATH_ALL_URL_PREFIX |
Fields inherited from interface org.springframework.core.io.ResourceLoader |
---|
CLASSPATH_URL_PREFIX |
Constructor Summary | |
---|---|
AnnotationConfigApplicationContext()
Create a new AnnotationConfigApplicationContext that needs to be populated through register(java.lang.Class>...) calls and then manually refreshed. |
|
AnnotationConfigApplicationContext(java.lang.Class<?>... annotatedClasses)
Create a new AnnotationConfigApplicationContext, deriving bean definitions from the given annotated classes and automatically refreshing the context. |
|
AnnotationConfigApplicationContext(java.lang.String... basePackages)
Create a new AnnotationConfigApplicationContext, scanning for bean definitions in the given packages and automatically refreshing the context. |
Method Summary | |
---|---|
void |
register(java.lang.Class<?>... annotatedClasses)
Register one or more annotated classes to be processed. |
void |
scan(java.lang.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)
Set the Environment for this application context. |
void |
setScopeMetadataResolver(ScopeMetadataResolver scopeMetadataResolver)
Set the ScopeMetadataResolver to use for detected bean classes. |
Methods inherited from class org.springframework.context.support.GenericApplicationContext |
---|
cancelRefresh, closeBeanFactory, getBeanDefinition, getBeanFactory, getDefaultListableBeanFactory, getResource, getResources, isAlias, isBeanNameInUse, refreshBeanFactory, registerAlias, registerBeanDefinition, removeAlias, removeBeanDefinition, setAllowBeanDefinitionOverriding, setAllowCircularReferences, setId, setParent, setResourceLoader |
Methods inherited from class org.springframework.core.io.DefaultResourceLoader |
---|
getClassLoader, getResourceByPath, setClassLoader |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.springframework.beans.factory.support.BeanDefinitionRegistry |
---|
containsBeanDefinition, getBeanDefinitionCount, getBeanDefinitionNames |
Methods inherited from interface org.springframework.core.AliasRegistry |
---|
getAliases |
Methods inherited from interface org.springframework.core.io.ResourceLoader |
---|
getClassLoader |
Field Detail |
---|
private final AnnotatedBeanDefinitionReader reader
private final ClassPathBeanDefinitionScanner scanner
Constructor Detail |
---|
public AnnotationConfigApplicationContext()
register(java.lang.Class>...)
calls and then manually refreshed.
public AnnotationConfigApplicationContext(java.lang.Class<?>... annotatedClasses)
annotatedClasses
- one or more annotated classes,
e.g. @Configuration
classespublic AnnotationConfigApplicationContext(java.lang.String... basePackages)
basePackages
- the packages to check for annotated classesMethod Detail |
---|
public void setEnvironment(ConfigurableEnvironment environment)
Environment
for this application context.
Default value is determined by AbstractApplicationContext.createEnvironment()
. Replacing the
default with this method is one option but configuration through AbstractApplicationContext.getEnvironment()
should also be considered. In either case, such modifications
should be performed before AbstractApplicationContext.refresh()
.
Delegates given environment to underlying AnnotatedBeanDefinitionReader
and ClassPathBeanDefinitionScanner
members.
setEnvironment
in interface ConfigurableApplicationContext
setEnvironment
in class AbstractApplicationContext
environment
- the new environmentAbstractApplicationContext.createEnvironment()
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...)
.
AnnotatedBeanDefinitionReader.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...)
.
public void register(java.lang.Class<?>... annotatedClasses)
AbstractApplicationContext.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...)
,
AbstractApplicationContext.refresh()
public void scan(java.lang.String... basePackages)
AbstractApplicationContext.refresh()
must be called in order for the context to
fully process the new class.
basePackages
- the packages to check for annotated classesregister(Class...)
,
AbstractApplicationContext.refresh()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |