public class

XmlPortletApplicationContext

extends AbstractRefreshablePortletApplicationContext
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

Class Overview

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.

Summary

Constants
String DEFAULT_CONFIG_LOCATION Default config location for the root context
String DEFAULT_CONFIG_LOCATION_PREFIX Default prefix for building a config location for a namespace
String DEFAULT_CONFIG_LOCATION_SUFFIX Default suffix for building a config location for a namespace
[Expand]
Inherited Constants
From class org.springframework.context.support.AbstractApplicationContext
From interface org.springframework.beans.factory.BeanFactory
From interface org.springframework.context.ConfigurableApplicationContext
From interface org.springframework.core.io.ResourceLoader
From interface org.springframework.core.io.support.ResourcePatternResolver
From interface org.springframework.web.context.WebApplicationContext
From interface org.springframework.web.portlet.context.ConfigurablePortletApplicationContext
[Expand]
Inherited Fields
From class org.springframework.context.support.AbstractApplicationContext
From interface org.springframework.web.context.WebApplicationContext
From interface org.springframework.web.portlet.context.ConfigurablePortletApplicationContext
Public Constructors
XmlPortletApplicationContext()
Protected Methods
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").
void initBeanDefinitionReader(XmlBeanDefinitionReader beanDefinitionReader)
Initialize the bean definition reader used for loading the bean definitions of this context.
void loadBeanDefinitions(DefaultListableBeanFactory beanFactory)
Loads the bean definitions via an XmlBeanDefinitionReader.
void loadBeanDefinitions(XmlBeanDefinitionReader reader)
Load the bean definitions with the given XmlBeanDefinitionReader.
[Expand]
Inherited Methods
From class org.springframework.web.portlet.context.AbstractRefreshablePortletApplicationContext
From class org.springframework.context.support.AbstractRefreshableConfigApplicationContext
From class org.springframework.context.support.AbstractRefreshableApplicationContext
From class org.springframework.context.support.AbstractApplicationContext
From class org.springframework.core.io.DefaultResourceLoader
From class java.lang.Object
From interface org.springframework.beans.factory.BeanFactory
From interface org.springframework.beans.factory.BeanNameAware
From interface org.springframework.beans.factory.DisposableBean
From interface org.springframework.beans.factory.HierarchicalBeanFactory
From interface org.springframework.beans.factory.InitializingBean
From interface org.springframework.beans.factory.ListableBeanFactory
From interface org.springframework.context.ApplicationContext
From interface org.springframework.context.ApplicationEventPublisher
From interface org.springframework.context.ConfigurableApplicationContext
From interface org.springframework.context.Lifecycle
From interface org.springframework.context.MessageSource
From interface org.springframework.core.env.EnvironmentCapable
From interface org.springframework.core.io.ResourceLoader
From interface org.springframework.core.io.support.ResourcePatternResolver
From interface org.springframework.web.context.WebApplicationContext
From interface org.springframework.web.portlet.context.ConfigurablePortletApplicationContext

Constants

public static final String DEFAULT_CONFIG_LOCATION

Default config location for the root context

Constant Value: "/WEB-INF/applicationContext.xml"

public static final String DEFAULT_CONFIG_LOCATION_PREFIX

Default prefix for building a config location for a namespace

Constant Value: "/WEB-INF/"

public static final String DEFAULT_CONFIG_LOCATION_SUFFIX

Default suffix for building a config location for a namespace

Constant Value: ".xml"

Public Constructors

public XmlPortletApplicationContext ()

Protected Methods

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").

Returns
  • an array of default config locations, if any

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

protected void loadBeanDefinitions (DefaultListableBeanFactory beanFactory)

Loads the bean definitions via an XmlBeanDefinitionReader.

Parameters
beanFactory the bean factory to load bean definitions into

protected void loadBeanDefinitions (XmlBeanDefinitionReader reader)

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