org.springframework.web.portlet.context
Class XmlPortletApplicationContext
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:
- Aware, BeanFactory, BeanNameAware, DisposableBean, HierarchicalBeanFactory, InitializingBean, ListableBeanFactory, ApplicationContext, ApplicationEventPublisher, ConfigurableApplicationContext, Lifecycle, MessageSource, EnvironmentCapable, ResourceLoader, ResourcePatternResolver, WebApplicationContext, ConfigurablePortletApplicationContext
public class XmlPortletApplicationContext
- extends AbstractRefreshablePortletApplicationContext
Portlet-based WebApplicationContext
implementation which takes its configuration from XML documents, understood
by an XmlBeanDefinitionReader
.
This is essentially the equivalent of
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 FrameworkPortlet
.
Config locations can either denote concrete files like "/WEB-INF/context.xml"
or Ant-style patterns like "/WEB-INF/*-context.xml" (see
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.
- Since:
- 2.0
- Author:
- Juergen Hoeller, John A. Lewis
- See Also:
AbstractRefreshablePortletApplicationContext.setNamespace(java.lang.String)
,
AbstractRefreshableConfigApplicationContext.setConfigLocations(java.lang.String[])
,
XmlBeanDefinitionReader
,
FrameworkPortlet.initPortletApplicationContext()
Methods inherited from class org.springframework.web.portlet.context.AbstractRefreshablePortletApplicationContext |
createEnvironment, customizeBeanFactory, getConfigLocations, getNamespace, getPortletConfig, getPortletContext, getResourceByPath, getResourcePatternResolver, getServletContext, postProcessBeanFactory, setNamespace, setParent, setPortletConfig, setPortletContext |
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, getEnvironment, getId, getInternalParentBeanFactory, getInternalParentMessageSource, getMessage, getMessage, getMessage, getParent, getParentBeanFactory, getResources, getStartupDate, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, initPropertySources, invokeBeanFactoryPostProcessors, isActive, isPrototype, isRunning, isSingleton, isTypeMatch, obtainFreshBeanFactory, onClose, onRefresh, prepareBeanFactory, prepareRefresh, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, setDisplayName, setEnvironment, start, stop, toString |
DEFAULT_CONFIG_LOCATION
public static final String DEFAULT_CONFIG_LOCATION
- Default config location for the root context
- See Also:
- Constant Field Values
DEFAULT_CONFIG_LOCATION_PREFIX
public static final String DEFAULT_CONFIG_LOCATION_PREFIX
- Default prefix for building a config location for a namespace
- See Also:
- Constant Field Values
DEFAULT_CONFIG_LOCATION_SUFFIX
public static final String DEFAULT_CONFIG_LOCATION_SUFFIX
- Default suffix for building a config location for a namespace
- See Also:
- Constant Field Values
XmlPortletApplicationContext
public XmlPortletApplicationContext()
loadBeanDefinitions
protected void loadBeanDefinitions(DefaultListableBeanFactory beanFactory)
throws BeansException,
IOException
- Loads the bean definitions via an XmlBeanDefinitionReader.
- Specified by:
loadBeanDefinitions
in class AbstractRefreshableApplicationContext
- Parameters:
beanFactory
- the bean factory to load bean definitions into
- Throws:
BeansException
- if parsing of the bean definitions failed
IOException
- if loading of bean definition files failed- See Also:
XmlBeanDefinitionReader
,
initBeanDefinitionReader(org.springframework.beans.factory.xml.XmlBeanDefinitionReader)
,
loadBeanDefinitions(org.springframework.beans.factory.support.DefaultListableBeanFactory)
initBeanDefinitionReader
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.
- Parameters:
beanDefinitionReader
- the bean definition reader used by this context- See Also:
XmlBeanDefinitionReader.setValidationMode(int)
,
XmlBeanDefinitionReader.setDocumentReaderClass(java.lang.Class>)
loadBeanDefinitions
protected void loadBeanDefinitions(XmlBeanDefinitionReader reader)
throws BeansException,
IOException
- 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.
- Throws:
BeansException
- in case of bean registration errors
IOException
- if the required XML document isn't found- See Also:
AbstractRefreshableApplicationContext.refreshBeanFactory()
,
AbstractRefreshablePortletApplicationContext.getConfigLocations()
,
AbstractApplicationContext.getResources(java.lang.String)
,
AbstractRefreshablePortletApplicationContext.getResourcePatternResolver()
getDefaultConfigLocations
protected String[] getDefaultConfigLocations()
- 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").
- Overrides:
getDefaultConfigLocations
in class AbstractRefreshableConfigApplicationContext
- Returns:
- an array of default config locations, if any
- See Also:
AbstractRefreshableConfigApplicationContext.setConfigLocations(java.lang.String[])