org.springframework.context.support
Class FileSystemXmlApplicationContext

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
                  extended by org.springframework.context.support.AbstractXmlApplicationContext
                      extended by org.springframework.context.support.FileSystemXmlApplicationContext
All Implemented Interfaces:
BeanFactory, BeanNameAware, DisposableBean, HierarchicalBeanFactory, InitializingBean, ListableBeanFactory, ApplicationContext, ApplicationEventPublisher, ConfigurableApplicationContext, Lifecycle, MessageSource, ResourceLoader, 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 (e.g. "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

Field Summary
 
Fields inherited from class org.springframework.context.support.AbstractApplicationContext
APPLICATION_EVENT_MULTICASTER_BEAN_NAME, logger, MESSAGE_SOURCE_BEAN_NAME
 
Fields inherited from interface org.springframework.context.ConfigurableApplicationContext
CONFIG_LOCATION_DELIMITERS, 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
FileSystemXmlApplicationContext()
          Create a new FileSystemXmlApplicationContext for bean-style configuration.
FileSystemXmlApplicationContext(ApplicationContext parent)
          Create a new FileSystemXmlApplicationContext for bean-style configuration.
FileSystemXmlApplicationContext(java.lang.String configLocation)
          Create a new FileSystemXmlApplicationContext, loading the definitions from the given XML file and automatically refreshing the context.
FileSystemXmlApplicationContext(java.lang.String[] configLocations)
          Create a new FileSystemXmlApplicationContext, loading the definitions from the given XML files and automatically refreshing the context.
FileSystemXmlApplicationContext(java.lang.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(java.lang.String[] configLocations, boolean refresh)
          Create a new FileSystemXmlApplicationContext, loading the definitions from the given XML files.
FileSystemXmlApplicationContext(java.lang.String[] configLocations, boolean refresh, ApplicationContext parent)
          Create a new FileSystemXmlApplicationContext with the given parent, loading the definitions from the given XML files.
 
Method Summary
protected  Resource getResourceByPath(java.lang.String path)
          Resolve resource paths as file system paths.
 
Methods inherited from class org.springframework.context.support.AbstractXmlApplicationContext
getConfigResources, initBeanDefinitionReader, loadBeanDefinitions, loadBeanDefinitions
 
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
closeBeanFactory, createBeanFactory, customizeBeanFactory, getBeanFactory, hasBeanFactory, refreshBeanFactory, setAllowBeanDefinitionOverriding, setAllowCircularReferences
 
Methods inherited from class org.springframework.context.support.AbstractApplicationContext
addApplicationListener, addBeanFactoryPostProcessor, addListener, cancelRefresh, close, containsBean, containsBeanDefinition, containsLocalBean, destroy, destroyBeans, doClose, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getAutowireCapableBeanFactory, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType, getBeansWithAnnotation, getBeansWithAnnotation, getDisplayName, getId, getInternalParentBeanFactory, getInternalParentMessageSource, getMessage, getMessage, getMessage, getParent, getParentBeanFactory, getResourcePatternResolver, getResources, getStartupDate, getType, initApplicationEventMulticaster, 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, 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

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(java.lang.String configLocation)
                                throws BeansException
Create a new FileSystemXmlApplicationContext, loading the definitions from the given XML file and automatically refreshing the context.

Parameters:
configLocation - file path
Throws:
BeansException - if context creation failed

FileSystemXmlApplicationContext

public FileSystemXmlApplicationContext(java.lang.String[] configLocations)
                                throws 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:
BeansException - if context creation failed

FileSystemXmlApplicationContext

public FileSystemXmlApplicationContext(java.lang.String[] configLocations,
                                       ApplicationContext parent)
                                throws 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:
BeansException - if context creation failed

FileSystemXmlApplicationContext

public FileSystemXmlApplicationContext(java.lang.String[] configLocations,
                                       boolean refresh)
                                throws 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:
BeansException - if context creation failed
See Also:
AbstractApplicationContext.refresh()

FileSystemXmlApplicationContext

public FileSystemXmlApplicationContext(java.lang.String[] configLocations,
                                       boolean refresh,
                                       ApplicationContext parent)
                                throws 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:
BeansException - if context creation failed
See Also:
AbstractApplicationContext.refresh()
Method Detail

getResourceByPath

protected Resource getResourceByPath(java.lang.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 DefaultResourceLoader
Parameters:
path - path to the resource
Returns:
Resource handle
See Also:
AbstractRefreshableWebApplicationContext.getResourceByPath(java.lang.String)