Class 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 (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:
  • Constructor Details

    • FileSystemXmlApplicationContext

      public FileSystemXmlApplicationContext()
      Create a new FileSystemXmlApplicationContext for bean-style configuration.
      See Also:
    • FileSystemXmlApplicationContext

      public FileSystemXmlApplicationContext(ApplicationContext parent)
      Create a new FileSystemXmlApplicationContext for bean-style configuration.
      Parameters:
      parent - the parent context
      See Also:
    • 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:
    • 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:
  • 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