## org.springframework.context.support
Class AbstractRefreshableConfigApplicationContext

    java.lang.Object
      org.springframework.core.io.DefaultResourceLoader
          org.springframework.context.support.AbstractApplicationContext
              org.springframework.context.support.AbstractRefreshableApplicationContext
                  org.springframework.context.support.AbstractRefreshableConfigApplicationContext

All Implemented Interfaces:
  BeanFactory, BeanNameAware, DisposableBean, HierarchicalBeanFactory, InitializingBean, ListableBeanFactory, ApplicationContext, ApplicationEventPublisher, ConfigurableApplicationContext, Lifecycle, MessageSource, 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, 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, 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, getResourcePatternResolver, getResources, getStartupDate, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, invokeBeanFactoryPostProcessors, isActive, isPrototype, isRunning, isSingleton, isTypeMatch, obtainFreshBeanFactory, onClose, onRefresh, postProcessBeanFactory, prepareBeanFactory, prepareRefresh, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, setDisplayName, 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
  See Also:
    `SystemPropertyUtils.resolvePlaceholders(java.lang.String)`

### 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`