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, 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

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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

      `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, getApplicationName, 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 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 `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`