org.springframework.context.support
Class AbstractRefreshableConfigApplicationContext

java.lang.Object
  extended by org.springframework.core.io.DefaultResourceLoader
      extended by org.springframework.context.support.AbstractApplicationContext
          extended by org.springframework.context.support.AbstractRefreshableApplicationContext
              extended by org.springframework.context.support.AbstractRefreshableConfigApplicationContext
All Implemented Interfaces:
Aware, BeanFactory, BeanNameAware, DisposableBean, HierarchicalBeanFactory, InitializingBean, ListableBeanFactory, ApplicationContext, ApplicationEventPublisher, ConfigurableApplicationContext, Lifecycle, MessageSource, EnvironmentCapable, ResourceLoader, ResourcePatternResolver
Direct Known Subclasses:
AbstractRefreshablePortletApplicationContext, AbstractRefreshableWebApplicationContext, AbstractXmlApplicationContext

public abstract class AbstractRefreshableConfigApplicationContext
extends AbstractRefreshableApplicationContext
implements BeanNameAware, InitializingBean

AbstractRefreshableApplicationContext subclass that adds common handling of specified config locations. Serves as base class for XML-based application context implementations such as ClassPathXmlApplicationContext and FileSystemXmlApplicationContext, as well as XmlWebApplicationContext and XmlPortletApplicationContext.

Since:
2.5.2
Author:
Juergen Hoeller
See Also:
setConfigLocation(java.lang.String), setConfigLocations(java.lang.String[]), getDefaultConfigLocations()

Field Summary
 
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
AbstractRefreshableConfigApplicationContext()
          Create a new AbstractRefreshableConfigApplicationContext with no parent.
AbstractRefreshableConfigApplicationContext(ApplicationContext parent)
          Create a new AbstractRefreshableConfigApplicationContext with the given parent context.
 
Method Summary
 void afterPropertiesSet()
          Triggers AbstractApplicationContext.refresh() if not refreshed in the concrete context's constructor already.
protected  String[] getConfigLocations()
          Return an array of resource locations, referring to the XML bean definition files that this context should be built with.
protected  String[] getDefaultConfigLocations()
          Return the default config locations to use, for the case where no explicit config locations have been specified.
protected  String resolvePath(String path)
          Resolve the given path, replacing placeholders with corresponding system property values if necessary.
 void setBeanName(String name)
          Sets the id of this context to the bean name by default, for cases where the context instance is itself defined as a bean.
 void setConfigLocation(String location)
          Set the config locations for this application context in init-param style, i.e.
 void setConfigLocations(String[] locations)
          Set the config locations for this application context.
 void setId(String id)
          Set the unique id of this application context.
 
Methods inherited from class org.springframework.context.support.AbstractRefreshableApplicationContext
cancelRefresh, closeBeanFactory, createBeanFactory, customizeBeanFactory, getBeanFactory, hasBeanFactory, loadBeanDefinitions, refreshBeanFactory, setAllowBeanDefinitionOverriding, setAllowCircularReferences
 
Methods inherited from class org.springframework.context.support.AbstractApplicationContext
addApplicationListener, addBeanFactoryPostProcessor, addListener, close, containsBean, containsBeanDefinition, containsLocalBean, createEnvironment, 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, getResourcePatternResolver, getResources, getStartupDate, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, initPropertySources, invokeBeanFactoryPostProcessors, isActive, isPrototype, isRunning, isSingleton, isTypeMatch, obtainFreshBeanFactory, onClose, onRefresh, postProcessBeanFactory, prepareBeanFactory, prepareRefresh, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, setDisplayName, setEnvironment, setParent, start, stop, toString
 
Methods inherited from class org.springframework.core.io.DefaultResourceLoader
getClassLoader, getResource, 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.core.io.ResourceLoader
getClassLoader, getResource
 

Constructor Detail

AbstractRefreshableConfigApplicationContext

public AbstractRefreshableConfigApplicationContext()
Create a new AbstractRefreshableConfigApplicationContext with no parent.


AbstractRefreshableConfigApplicationContext

public AbstractRefreshableConfigApplicationContext(ApplicationContext parent)
Create a new AbstractRefreshableConfigApplicationContext with the given parent context.

Parameters:
parent - the parent context
Method Detail

setConfigLocation

public void setConfigLocation(String location)
Set the config locations for this application context in init-param style, i.e. with distinct locations separated by commas, semicolons or whitespace.

If not set, the implementation may use a default as appropriate.


setConfigLocations

public void setConfigLocations(String[] locations)
Set the config locations for this application context.

If not set, the implementation may use a default as appropriate.


getConfigLocations

protected String[] getConfigLocations()
Return an array of resource locations, referring to the XML bean definition files that this context should be built with. Can also include location patterns, which will get resolved via a ResourcePatternResolver.

The default implementation returns null. Subclasses can override this to provide a set of resource locations to load bean definitions from.

Returns:
an array of resource locations, or null if none
See Also:
AbstractApplicationContext.getResources(java.lang.String), AbstractApplicationContext.getResourcePatternResolver()

getDefaultConfigLocations

protected String[] getDefaultConfigLocations()
Return the default config locations to use, for the case where no explicit config locations have been specified.

The default implementation returns null, requiring explicit config locations.

Returns:
an array of default config locations, if any
See Also:
setConfigLocations(java.lang.String[])

resolvePath

protected String resolvePath(String path)
Resolve the given path, replacing placeholders with corresponding system property values if necessary. Applied to config locations.

Parameters:
path - the original file path
Returns:
the resolved file path

setId

public void setId(String id)
Description copied from class: AbstractApplicationContext
Set the unique id of this application context.

Default is the object id of the context instance, or the name of the context bean if the context is itself defined as a bean.

Specified by:
setId in interface ConfigurableApplicationContext
Overrides:
setId in class AbstractApplicationContext
Parameters:
id - the unique id of the context

setBeanName

public void setBeanName(String name)
Sets the id of this context to the bean name by default, for cases where the context instance is itself defined as a bean.

Specified by:
setBeanName in interface BeanNameAware
Parameters:
name - the name of the bean in the factory. Note that this name is the actual bean name used in the factory, which may differ from the originally specified name: in particular for inner bean names, the actual bean name might have been made unique through appending "#..." suffixes. Use the BeanFactoryUtils.originalBeanName(String) method to extract the original bean name (without suffix), if desired.

afterPropertiesSet

public void afterPropertiesSet()
Triggers AbstractApplicationContext.refresh() if not refreshed in the concrete context's constructor already.

Specified by:
afterPropertiesSet in interface InitializingBean