Package 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:
  `Closeable`, `AutoCloseable`, `org.springframework.beans.factory.Aware`, `org.springframework.beans.factory.BeanFactory`, `org.springframework.beans.factory.BeanNameAware`, `org.springframework.beans.factory.HierarchicalBeanFactory`, `org.springframework.beans.factory.InitializingBean`, `org.springframework.beans.factory.ListableBeanFactory`, `ApplicationContext`, `ApplicationEventPublisher`, `ConfigurableApplicationContext`, `Lifecycle`, `MessageSource`, `org.springframework.core.env.EnvironmentCapable`, `org.springframework.core.io.ResourceLoader`, `org.springframework.core.io.support.ResourcePatternResolver`

Direct Known Subclasses:
  `AbstractXmlApplicationContext`

public abstract class AbstractRefreshableConfigApplicationContext extends AbstractRefreshableApplicationContext implements org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.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 `org.springframework.web.context.support.XmlWebApplicationContext`.

Since:
  2.5.2
Author:
  Juergen Hoeller
See Also:
  - `setConfigLocation(java.lang.String)`
  - `setConfigLocations(java.lang.String...)`
  - `getDefaultConfigLocations()`

## Nested Class Summary

## Nested classes/interfaces inherited from class org.springframework.core.io.DefaultResourceLoader

`org.springframework.core.io.DefaultResourceLoader.ClassPathContextResource`

## 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.beans.factory.BeanFactory

`FACTORY_BEAN_PREFIX, FACTORY_BEAN_PREFIX_CHAR`

### Fields inherited from interface org.springframework.context.ConfigurableApplicationContext

`APPLICATION_STARTUP_BEAN_NAME, BOOTSTRAP_EXECUTOR_BEAN_NAME, CONFIG_LOCATION_DELIMITERS, CONVERSION_SERVICE_BEAN_NAME, ENVIRONMENT_BEAN_NAME, LOAD_TIME_WEAVER_BEAN_NAME, SHUTDOWN_HOOK_THREAD_NAME, SYSTEM_ENVIRONMENT_BEAN_NAME, SYSTEM_PROPERTIES_BEAN_NAME`

### Fields inherited from interface org.springframework.core.io.ResourceLoader

`CLASSPATH_URL_PREFIX`

### Fields inherited from interface org.springframework.core.io.support.ResourcePatternResolver

`CLASSPATH_ALL_URL_PREFIX`

## Constructor Summary

Constructors
Constructor
Description
`AbstractRefreshableConfigApplicationContext()`
Create a new AbstractRefreshableConfigApplicationContext with no parent.
`AbstractRefreshableConfigApplicationContext(ApplicationContext parent)`
Create a new AbstractRefreshableConfigApplicationContext with the given parent context.

## Method Summary

Modifier and Type
Method
Description
`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 environment 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

`assertBeanFactoryActive, cancelRefresh, closeBeanFactory, createBeanFactory, customizeBeanFactory, getBeanFactory, hasBeanFactory, loadBeanDefinitions, refreshBeanFactory, setAllowBeanDefinitionOverriding, setAllowCircularReferences`

### Methods inherited from class org.springframework.context.support.AbstractApplicationContext

`addApplicationListener, addBeanFactoryPostProcessor, clearResourceCaches, close, containsBean, containsBeanDefinition, containsLocalBean, createEnvironment, destroyBeans, doClose, findAllAnnotationsOnBean, findAnnotationOnBean, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getApplicationName, getApplicationStartup, getAutowireCapableBeanFactory, getBean, getBean, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanProvider, getBeanProvider, getBeanProvider, getBeanProvider, getBeansOfType, getBeansOfType, getBeansWithAnnotation, getDisplayName, getEnvironment, getId, getInternalParentBeanFactory, getInternalParentMessageSource, getMessage, getMessage, getMessage, getParent, getParentBeanFactory, getResourcePatternResolver, getResources, getStartupDate, getType, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, initPropertySources, invokeBeanFactoryPostProcessors, isActive, isClosed, isPrototype, isRunning, isSingleton, isTypeMatch, isTypeMatch, obtainFreshBeanFactory, onClose, onRefresh, postProcessBeanFactory, prepareBeanFactory, prepareRefresh, publishEvent, publishEvent, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, removeApplicationListener, resetCommonCaches, setApplicationStartup, setDisplayName, setEnvironment, setParent, start, stop, toString`

### Methods inherited from class org.springframework.core.io.DefaultResourceLoader

`addProtocolResolver, getClassLoader, getProtocolResolvers, getResource, getResourceByPath, getResourceCache, setClassLoader`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.springframework.context.ConfigurableApplicationContext

`addProtocolResolver, setClassLoader`

### Methods inherited from interface org.springframework.core.io.ResourceLoader

`getClassLoader, getResource`

## Constructor Details

### AbstractRefreshableConfigApplicationContext

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

### AbstractRefreshableConfigApplicationContext

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

Parameters:
  `parent` - the parent context

## Method Details

### 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(@Nullable String... locations)
Set the config locations for this application context.

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

### getConfigLocations

@Nullable 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

@Nullable 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 environment property values if necessary. Applied to config locations.

Parameters:
  `path` - the original file path
Returns:
  the resolved file path
See Also:
  - `PropertyResolver.resolveRequiredPlaceholders(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 `org.springframework.beans.factory.BeanNameAware`

### afterPropertiesSet

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

Specified by:
  `afterPropertiesSet` in interface `org.springframework.beans.factory.InitializingBean`