Package org.springframework.context.support

# Class FileSystemXmlApplicationContext

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.context.support.AbstractXmlApplicationContext
org.springframework.context.support.FileSystemXmlApplicationContext

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`

public class FileSystemXmlApplicationContext extends AbstractXmlApplicationContext
Standalone XML application context, taking the context definition files from the file system or from URLs, interpreting plain paths as relative file system locations (for example, "mydir/myfile.txt"). Useful for test harnesses as well as for standalone environments.

NOTE: Plain paths will always be interpreted as relative to the current VM working directory, even if they start with a slash. (This is consistent with the semantics in a Servlet container.) Use an explicit "file:" prefix to enforce an absolute file path.

The config location defaults can be overridden via `AbstractRefreshableConfigApplicationContext.getConfigLocations()`, Config locations can either denote concrete files like "/myfiles/context.xml" or Ant-style patterns like "/myfiles/*-context.xml" (see the `AntPathMatcher` 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.

This is a simple, one-stop shop convenience ApplicationContext. Consider using the `GenericApplicationContext` class in combination with an `XmlBeanDefinitionReader` for more flexible context setup.

Author:
  Rod Johnson, Juergen Hoeller
See Also:
  - `DefaultResourceLoader.getResource(java.lang.String)`
  - `getResourceByPath(java.lang.String)`
  - `GenericApplicationContext`

## 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
`FileSystemXmlApplicationContext()`
Create a new FileSystemXmlApplicationContext for bean-style configuration.
`FileSystemXmlApplicationContext(String configLocation)`
Create a new FileSystemXmlApplicationContext, loading the definitions from the given XML file and automatically refreshing the context.
`FileSystemXmlApplicationContext(String... configLocations)`
Create a new FileSystemXmlApplicationContext, loading the definitions from the given XML files and automatically refreshing the context.
`FileSystemXmlApplicationContext(String[] configLocations, boolean refresh)`
Create a new FileSystemXmlApplicationContext, loading the definitions from the given XML files.
`FileSystemXmlApplicationContext(String[] configLocations, boolean refresh, ApplicationContext parent)`
Create a new FileSystemXmlApplicationContext with the given parent, loading the definitions from the given XML files.
`FileSystemXmlApplicationContext(String[] configLocations, ApplicationContext parent)`
Create a new FileSystemXmlApplicationContext with the given parent, loading the definitions from the given XML files and automatically refreshing the context.
`FileSystemXmlApplicationContext(ApplicationContext parent)`
Create a new FileSystemXmlApplicationContext for bean-style configuration.

## Method Summary

Modifier and Type
Method
Description
`protected org.springframework.core.io.Resource`
`getResourceByPath(String path)`
Resolve resource paths as file system paths.

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

`getConfigResources, initBeanDefinitionReader, loadBeanDefinitions, loadBeanDefinitions, setValidating`

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

`afterPropertiesSet, getConfigLocations, getDefaultConfigLocations, resolvePath, setBeanName, setConfigLocation, setConfigLocations, setId`

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

`assertBeanFactoryActive, cancelRefresh, closeBeanFactory, createBeanFactory, customizeBeanFactory, getBeanFactory, hasBeanFactory, 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, 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

### FileSystemXmlApplicationContext

public FileSystemXmlApplicationContext()
Create a new FileSystemXmlApplicationContext for bean-style configuration.

See Also:
  - `AbstractRefreshableConfigApplicationContext.setConfigLocation(java.lang.String)`
  - `AbstractRefreshableConfigApplicationContext.setConfigLocations(java.lang.String...)`
  - `AbstractRefreshableConfigApplicationContext.afterPropertiesSet()`

### FileSystemXmlApplicationContext

public FileSystemXmlApplicationContext(ApplicationContext parent)
Create a new FileSystemXmlApplicationContext for bean-style configuration.

Parameters:
  `parent` - the parent context
See Also:
  - `AbstractRefreshableConfigApplicationContext.setConfigLocation(java.lang.String)`
  - `AbstractRefreshableConfigApplicationContext.setConfigLocations(java.lang.String...)`
  - `AbstractRefreshableConfigApplicationContext.afterPropertiesSet()`

### FileSystemXmlApplicationContext

public FileSystemXmlApplicationContext(String configLocation) throws org.springframework.beans.BeansException
Create a new FileSystemXmlApplicationContext, loading the definitions from the given XML file and automatically refreshing the context.

Parameters:
  `configLocation` - file path
Throws:
  `org.springframework.beans.BeansException` - if context creation failed

### FileSystemXmlApplicationContext

public FileSystemXmlApplicationContext(String... configLocations) throws org.springframework.beans.BeansException
Create a new FileSystemXmlApplicationContext, loading the definitions from the given XML files and automatically refreshing the context.

Parameters:
  `configLocations` - array of file paths
Throws:
  `org.springframework.beans.BeansException` - if context creation failed

### FileSystemXmlApplicationContext

public FileSystemXmlApplicationContext(String[] configLocations, ApplicationContext parent) throws org.springframework.beans.BeansException
Create a new FileSystemXmlApplicationContext with the given parent, loading the definitions from the given XML files and automatically refreshing the context.

Parameters:
  `configLocations` - array of file paths
  `parent` - the parent context
Throws:
  `org.springframework.beans.BeansException` - if context creation failed

### FileSystemXmlApplicationContext

public FileSystemXmlApplicationContext(String[] configLocations, boolean refresh) throws org.springframework.beans.BeansException
Create a new FileSystemXmlApplicationContext, loading the definitions from the given XML files.

Parameters:
  `configLocations` - array of file paths
  `refresh` - whether to automatically refresh the context, loading all bean definitions and creating all singletons. Alternatively, call refresh manually after further configuring the context.
Throws:
  `org.springframework.beans.BeansException` - if context creation failed
See Also:
  - `AbstractApplicationContext.refresh()`

### FileSystemXmlApplicationContext

public FileSystemXmlApplicationContext(String[] configLocations, boolean refresh, @Nullable ApplicationContext parent) throws org.springframework.beans.BeansException
Create a new FileSystemXmlApplicationContext with the given parent, loading the definitions from the given XML files.

Parameters:
  `configLocations` - array of file paths
  `refresh` - whether to automatically refresh the context, loading all bean definitions and creating all singletons. Alternatively, call refresh manually after further configuring the context.
  `parent` - the parent context
Throws:
  `org.springframework.beans.BeansException` - if context creation failed
See Also:
  - `AbstractApplicationContext.refresh()`

## Method Details

### getResourceByPath

protected org.springframework.core.io.Resource getResourceByPath(String path)
Resolve resource paths as file system paths.

Note: Even if a given path starts with a slash, it will get interpreted as relative to the current VM working directory. This is consistent with the semantics in a Servlet container.

Overrides:
  `getResourceByPath` in class `org.springframework.core.io.DefaultResourceLoader`
Parameters:
  `path` - the path to the resource
Returns:
  the Resource handle
See Also:
  - `org.springframework.web.context.support.XmlWebApplicationContext#getResourceByPath`