Spring Framework

org.springframework.context.support
Class ClassPathXmlApplicationContext

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.ClassPathXmlApplicationContext
All Implemented Interfaces:
Aware, BeanFactory, BeanNameAware, DisposableBean, HierarchicalBeanFactory, InitializingBean, ListableBeanFactory, ApplicationContext, ApplicationEventPublisher, ConfigurableApplicationContext, Lifecycle, MessageSource, EnvironmentCapable, ResourceLoader, ResourcePatternResolver

public class ClassPathXmlApplicationContext
extends AbstractXmlApplicationContext

Standalone XML application context, taking the context definition files from the class path, interpreting plain paths as class path resource names that include the package path (e.g. "mypackage/myresource.txt"). Useful for test harnesses as well as for application contexts embedded within JARs.

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), DefaultResourceLoader.getResourceByPath(java.lang.String), GenericApplicationContext

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
ClassPathXmlApplicationContext()
          Create a new ClassPathXmlApplicationContext for bean-style configuration.
ClassPathXmlApplicationContext(ApplicationContext parent)
          Create a new ClassPathXmlApplicationContext for bean-style configuration.
ClassPathXmlApplicationContext(java.lang.String... configLocations)
          Create a new ClassPathXmlApplicationContext, loading the definitions from the given XML files and automatically refreshing the context.
ClassPathXmlApplicationContext(java.lang.String configLocation)
          Create a new ClassPathXmlApplicationContext, loading the definitions from the given XML file and automatically refreshing the context.
ClassPathXmlApplicationContext(java.lang.String[] configLocations, ApplicationContext parent)
          Create a new ClassPathXmlApplicationContext with the given parent, loading the definitions from the given XML files and automatically refreshing the context.
ClassPathXmlApplicationContext(java.lang.String[] configLocations, boolean refresh)
          Create a new ClassPathXmlApplicationContext, loading the definitions from the given XML files.
ClassPathXmlApplicationContext(java.lang.String[] configLocations, boolean refresh, ApplicationContext parent)
          Create a new ClassPathXmlApplicationContext with the given parent, loading the definitions from the given XML files.
ClassPathXmlApplicationContext(java.lang.String[] paths, java.lang.Class clazz)
          Create a new ClassPathXmlApplicationContext, loading the definitions from the given XML files and automatically refreshing the context.
ClassPathXmlApplicationContext(java.lang.String[] paths, java.lang.Class clazz, ApplicationContext parent)
          Create a new ClassPathXmlApplicationContext with the given parent, loading the definitions from the given XML files and automatically refreshing the context.
ClassPathXmlApplicationContext(java.lang.String path, java.lang.Class clazz)
          Create a new ClassPathXmlApplicationContext, loading the definitions from the given XML file and automatically refreshing the context.
 
Method Summary
protected  Resource[] getConfigResources()
          Return an array of Resource objects, referring to the XML bean definition files that this context should be built with.
 
Methods inherited from class org.springframework.context.support.AbstractXmlApplicationContext
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
cancelRefresh, closeBeanFactory, createBeanFactory, customizeBeanFactory, getBeanFactory, hasBeanFactory, 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, 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

ClassPathXmlApplicationContext

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

See Also:
AbstractRefreshableConfigApplicationContext.setConfigLocation(java.lang.String), AbstractRefreshableConfigApplicationContext.setConfigLocations(java.lang.String[]), AbstractRefreshableConfigApplicationContext.afterPropertiesSet()

ClassPathXmlApplicationContext

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

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

ClassPathXmlApplicationContext

public ClassPathXmlApplicationContext(java.lang.String configLocation)
                               throws BeansException
Create a new ClassPathXmlApplicationContext, loading the definitions from the given XML file and automatically refreshing the context.

Parameters:
configLocation - resource location
Throws:
BeansException - if context creation failed

ClassPathXmlApplicationContext

public ClassPathXmlApplicationContext(java.lang.String... configLocations)
                               throws BeansException
Create a new ClassPathXmlApplicationContext, loading the definitions from the given XML files and automatically refreshing the context.

Parameters:
configLocations - array of resource locations
Throws:
BeansException - if context creation failed

ClassPathXmlApplicationContext

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

Parameters:
configLocations - array of resource locations
parent - the parent context
Throws:
BeansException - if context creation failed

ClassPathXmlApplicationContext

public ClassPathXmlApplicationContext(java.lang.String[] configLocations,
                                      boolean refresh)
                               throws BeansException
Create a new ClassPathXmlApplicationContext, loading the definitions from the given XML files.

Parameters:
configLocations - array of resource locations
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()

ClassPathXmlApplicationContext

public ClassPathXmlApplicationContext(java.lang.String[] configLocations,
                                      boolean refresh,
                                      ApplicationContext parent)
                               throws BeansException
Create a new ClassPathXmlApplicationContext with the given parent, loading the definitions from the given XML files.

Parameters:
configLocations - array of resource locations
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()

ClassPathXmlApplicationContext

public ClassPathXmlApplicationContext(java.lang.String path,
                                      java.lang.Class clazz)
                               throws BeansException
Create a new ClassPathXmlApplicationContext, loading the definitions from the given XML file and automatically refreshing the context.

This is a convenience method to load class path resources relative to a given Class. For full flexibility, consider using a GenericApplicationContext with an XmlBeanDefinitionReader and a ClassPathResource argument.

Parameters:
path - relative (or absolute) path within the class path
clazz - the class to load resources with (basis for the given paths)
Throws:
BeansException - if context creation failed
See Also:
ClassPathResource.ClassPathResource(String, Class), GenericApplicationContext, XmlBeanDefinitionReader

ClassPathXmlApplicationContext

public ClassPathXmlApplicationContext(java.lang.String[] paths,
                                      java.lang.Class clazz)
                               throws BeansException
Create a new ClassPathXmlApplicationContext, loading the definitions from the given XML files and automatically refreshing the context.

Parameters:
paths - array of relative (or absolute) paths within the class path
clazz - the class to load resources with (basis for the given paths)
Throws:
BeansException - if context creation failed
See Also:
ClassPathResource.ClassPathResource(String, Class), GenericApplicationContext, XmlBeanDefinitionReader

ClassPathXmlApplicationContext

public ClassPathXmlApplicationContext(java.lang.String[] paths,
                                      java.lang.Class clazz,
                                      ApplicationContext parent)
                               throws BeansException
Create a new ClassPathXmlApplicationContext with the given parent, loading the definitions from the given XML files and automatically refreshing the context.

Parameters:
paths - array of relative (or absolute) paths within the class path
clazz - the class to load resources with (basis for the given paths)
parent - the parent context
Throws:
BeansException - if context creation failed
See Also:
ClassPathResource.ClassPathResource(String, Class), GenericApplicationContext, XmlBeanDefinitionReader
Method Detail

getConfigResources

protected Resource[] getConfigResources()
Description copied from class: AbstractXmlApplicationContext
Return an array of Resource objects, referring to the XML bean definition files that this context should be built with.

The default implementation returns null. Subclasses can override this to provide pre-built Resource objects rather than location Strings.

Overrides:
getConfigResources in class AbstractXmlApplicationContext
Returns:
an array of Resource objects, or null if none
See Also:
AbstractRefreshableConfigApplicationContext.getConfigLocations()

Spring Framework