org.springframework.web.context.support
Class AnnotationConfigWebApplicationContext
java.lang.Object
org.springframework.core.io.DefaultResourceLoader
org.springframework.context.support.AbstractApplicationContext
org.springframework.context.support.AbstractRefreshableApplicationContext
org.springframework.context.support.AbstractRefreshableConfigApplicationContext
org.springframework.web.context.support.AbstractRefreshableWebApplicationContext
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
- All Implemented Interfaces:
- BeanFactory, BeanNameAware, DisposableBean, HierarchicalBeanFactory, InitializingBean, ListableBeanFactory, ApplicationContext, ApplicationEventPublisher, ConfigurableApplicationContext, Lifecycle, MessageSource, ResourceLoader, ResourcePatternResolver, ThemeSource, ConfigurableWebApplicationContext, WebApplicationContext
public class AnnotationConfigWebApplicationContext
- extends AbstractRefreshableWebApplicationContext
WebApplicationContext
implementation
which accepts annotated classes as input - in particular
@Configuration
-annotated
classes, but also plain @Components
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).
This is essentially the equivalent of
AnnotationConfigApplicationContext
for a web environment.
To make use of this application context, the "contextClass" context-param for
ContextLoader and/or "contextClass" init-param for FrameworkServlet must be set to
the fully-qualified name of this class.
Unlike XmlWebApplicationContext
, no default configuration class locations
are assumed. Rather, it is a requirement to set the "contextConfigLocation"
context-param for ContextLoader and/or "contextConfigLocation" init-param for
FrameworkServlet. The param-value may contain both fully-qualified
class names and base packages to scan for components.
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:
- 3.0
- Author:
- Chris Beams, Juergen Hoeller
- See Also:
AnnotationConfigApplicationContext
Methods inherited from class org.springframework.web.context.support.AbstractRefreshableWebApplicationContext |
getConfigLocations, getNamespace, getResourceByPath, getResourcePatternResolver, getServletConfig, getServletContext, getTheme, onRefresh, postProcessBeanFactory, setNamespace, setServletConfig, setServletContext |
Methods inherited from class org.springframework.context.support.AbstractApplicationContext |
addApplicationListener, addBeanFactoryPostProcessor, addListener, close, containsBean, containsBeanDefinition, containsLocalBean, destroy, destroyBeans, doClose, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getAutowireCapableBeanFactory, getBean, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType, getBeansWithAnnotation, getDisplayName, getId, getInternalParentBeanFactory, getInternalParentMessageSource, getMessage, getMessage, getMessage, getParent, getParentBeanFactory, getResources, getStartupDate, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, invokeBeanFactoryPostProcessors, isActive, isPrototype, isRunning, isSingleton, isTypeMatch, obtainFreshBeanFactory, onClose, prepareBeanFactory, prepareRefresh, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, setDisplayName, setParent, start, stop, toString |
AnnotationConfigWebApplicationContext
public AnnotationConfigWebApplicationContext()
loadBeanDefinitions
protected void loadBeanDefinitions(DefaultListableBeanFactory beanFactory)
- Register a
BeanDefinition
for each class specified by AbstractRefreshableWebApplicationContext.getConfigLocations()
,
or scan each specified package for annotated classes. Enables the default set of
annotation configuration post processors, such that @Autowired,
@Required, and associated annotations can be used.
Configuration class bean definitions are registered with generated bean definition
names unless the value attribute is provided to the stereotype annotation.
- Specified by:
loadBeanDefinitions
in class AbstractRefreshableApplicationContext
- Parameters:
beanFactory
- the bean factory to load bean definitions into- See Also:
AbstractRefreshableWebApplicationContext.getConfigLocations()
,
AnnotatedBeanDefinitionReader
,
ClassPathBeanDefinitionScanner
getBeanNameGenerator
protected BeanNameGenerator getBeanNameGenerator()
- Provide a custom
BeanNameGenerator
for use with AnnotatedBeanDefinitionReader
and/or ClassPathBeanDefinitionScanner
, if any.
Default is AnnotationBeanNameGenerator
.
- See Also:
AnnotatedBeanDefinitionReader.setBeanNameGenerator(org.springframework.beans.factory.support.BeanNameGenerator)
,
ClassPathBeanDefinitionScanner.setBeanNameGenerator(org.springframework.beans.factory.support.BeanNameGenerator)
getScopeMetadataResolver
protected ScopeMetadataResolver getScopeMetadataResolver()
- Provide a custom
ScopeMetadataResolver
for use with AnnotatedBeanDefinitionReader
and/or ClassPathBeanDefinitionScanner
, if any.
Default is AnnotationScopeMetadataResolver
.
- See Also:
AnnotatedBeanDefinitionReader.setScopeMetadataResolver(org.springframework.context.annotation.ScopeMetadataResolver)
,
ClassPathBeanDefinitionScanner.setScopeMetadataResolver(org.springframework.context.annotation.ScopeMetadataResolver)