org.springframework.web.portlet.context
public class: XmlPortletApplicationContext [javadoc |
source]
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.portlet.context.AbstractRefreshablePortletApplicationContext
org.springframework.web.portlet.context.XmlPortletApplicationContext
All Implemented Interfaces:
ConfigurablePortletApplicationContext, WebApplicationContext, BeanNameAware, InitializingBean, ConfigurableApplicationContext, DisposableBean, ResourceLoader
Portlet-based
org.springframework.web.context.WebApplicationContext
implementation which takes its configuration from XML documents, understood
by an
org.springframework.beans.factory.xml.XmlBeanDefinitionReader .
This is essentially the equivalent of
org.springframework.context.support.AbstractXmlApplicationContext
for a portlet environment.
By default, the configuration will be taken from "/WEB-INF/applicationContext.xml"
for the root context, and "/WEB-INF/test-portlet.xml" for a context with the namespace
"test-portlet" (like for a DispatcherPortlet instance with the portlet-name "test").
The config location defaults can be overridden via the "contextConfigLocation"
portlet init-param of org.springframework.web.portlet.FrameworkPortlet .
Config locations can either denote concrete files like "/WEB-INF/context.xml"
or Ant-style patterns like "/WEB-INF/*-context.xml" (see
org.springframework.util.PathMatcher javadoc for pattern details).
Note: In case of multiple config locations, later bean definitions will
override ones defined in earlier loaded files. This can be leveraged to
deliberately override certain bean definitions via an extra XML file.
For a Portlet-based context that reads in a different bean definition format,
create an analogous subclass of AbstractRefreshablePortletApplicationContext .
Such a context implementation can be specified as "contextClass" init-param
for a FrameworkPortlet instance.
| Field Summary |
|---|
| public static final String | DEFAULT_CONFIG_LOCATION | Default config location for the root context |
| public static final String | DEFAULT_CONFIG_LOCATION_PREFIX | Default prefix for building a config location for a namespace |
| public static final String | DEFAULT_CONFIG_LOCATION_SUFFIX | Default suffix for building a config location for a namespace |
| Methods from org.springframework.web.portlet.context.AbstractRefreshablePortletApplicationContext: |
|---|
|
getConfigLocations, getNamespace, getPortletConfig, getPortletContext, getResourceByPath, getResourcePatternResolver, getServletContext, postProcessBeanFactory, setNamespace, setParent, setPortletConfig, setPortletContext |
| Methods from org.springframework.context.support.AbstractApplicationContext: |
|---|
|
addApplicationListener, addBeanFactoryPostProcessor, addListener, cancelRefresh, close, closeBeanFactory, containsBean, containsBeanDefinition, containsLocalBean, destroy, destroyBeans, doClose, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getAutowireCapableBeanFactory, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactory, getBeanFactoryPostProcessors, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType, getDisplayName, getId, getInternalParentBeanFactory, getInternalParentMessageSource, getMessage, getMessage, getMessage, getParent, getParentBeanFactory, getResourcePatternResolver, getResources, getStartupDate, getType, initApplicationEventMulticaster, initMessageSource, invokeBeanFactoryPostProcessors, isActive, isPrototype, isRunning, isSingleton, isTypeMatch, obtainFreshBeanFactory, onClose, onRefresh, postProcessBeanFactory, prepareBeanFactory, prepareRefresh, publishEvent, refresh, refreshBeanFactory, registerBeanPostProcessors, registerListeners, registerShutdownHook, setDisplayName, setId, setParent, start, stop, toString |
| Method from org.springframework.web.portlet.context.XmlPortletApplicationContext Detail: |
protected String[] getDefaultConfigLocations() {
if (getNamespace() != null) {
return new String[] {DEFAULT_CONFIG_LOCATION_PREFIX + getNamespace() + DEFAULT_CONFIG_LOCATION_SUFFIX};
}
else {
return new String[] {DEFAULT_CONFIG_LOCATION};
}
}
The default location for the root context is "/WEB-INF/applicationContext.xml",
and "/WEB-INF/test-portlet.xml" for a context with the namespace "test-portlet"
(like for a DispatcherPortlet instance with the portlet-name "test"). |
protected void initBeanDefinitionReader(XmlBeanDefinitionReader beanDefinitionReader) {
}
Initialize the bean definition reader used for loading the bean
definitions of this context. Default implementation is empty.
Can be overridden in subclasses, e.g. for turning off XML validation
or using a different XmlBeanDefinitionParser implementation. |
protected void loadBeanDefinitions(DefaultListableBeanFactory beanFactory) throws IOException {
// Create a new XmlBeanDefinitionReader for the given BeanFactory.
XmlBeanDefinitionReader beanDefinitionReader = new XmlBeanDefinitionReader(beanFactory);
// Configure the bean definition reader with this context's
// resource loading environment.
beanDefinitionReader.setResourceLoader(this);
beanDefinitionReader.setEntityResolver(new ResourceEntityResolver(this));
// Allow a subclass to provide custom initialization of the reader,
// then proceed with actually loading the bean definitions.
initBeanDefinitionReader(beanDefinitionReader);
loadBeanDefinitions(beanDefinitionReader);
}
Loads the bean definitions via an XmlBeanDefinitionReader. |
protected void loadBeanDefinitions(XmlBeanDefinitionReader reader) throws IOException, BeansException {
String[] configLocations = getConfigLocations();
if (configLocations != null) {
for (int i = 0; i < configLocations.length; i++) {
reader.loadBeanDefinitions(configLocations[i]);
}
}
}
Load the bean definitions with the given XmlBeanDefinitionReader.
The lifecycle of the bean factory is handled by the refreshBeanFactory method;
therefore this method is just supposed to load and/or register bean definitions.
Delegates to a ResourcePatternResolver for resolving location patterns
into Resource instances. |