Package org.springframework.context.support

# Class GenericXmlApplicationContext

java.lang.Object
org.springframework.core.io.DefaultResourceLoader
org.springframework.context.support.AbstractApplicationContext
org.springframework.context.support.GenericApplicationContext
org.springframework.context.support.GenericXmlApplicationContext

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`, `org.springframework.beans.factory.BeanFactory`, `org.springframework.beans.factory.HierarchicalBeanFactory`, `org.springframework.beans.factory.ListableBeanFactory`, `org.springframework.beans.factory.support.BeanDefinitionRegistry`, `ApplicationContext`, `ApplicationEventPublisher`, `ConfigurableApplicationContext`, `Lifecycle`, `MessageSource`, `org.springframework.core.AliasRegistry`, `org.springframework.core.env.EnvironmentCapable`, `org.springframework.core.io.ResourceLoader`, `org.springframework.core.io.support.ResourcePatternResolver`

public class GenericXmlApplicationContext extends GenericApplicationContext
Convenient application context with built-in XML support. This is a flexible alternative to `ClassPathXmlApplicationContext` and `FileSystemXmlApplicationContext`, to be configured via setters, with an eventual `AbstractApplicationContext.refresh()` call activating the context.

In case of multiple configuration files, bean definitions in later files will override those defined in earlier files. This can be leveraged to intentionally override certain bean definitions via an extra configuration file appended to the list.

Since:
  3.0
Author:
  Juergen Hoeller, Chris Beams
See Also:
  - `load(org.springframework.core.io.Resource...)`
  - `XmlBeanDefinitionReader`
  - `AnnotationConfigApplicationContext`

## 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
`GenericXmlApplicationContext()`
Create a new GenericXmlApplicationContext that needs to be `loaded` and then manually `refreshed`.
`GenericXmlApplicationContext(Class<?> relativeClass, String... resourceNames)`
Create a new GenericXmlApplicationContext, loading bean definitions from the given resource locations and automatically refreshing the context.
`GenericXmlApplicationContext(String... resourceLocations)`
Create a new GenericXmlApplicationContext, loading bean definitions from the given resource locations and automatically refreshing the context.
`GenericXmlApplicationContext(org.springframework.core.io.Resource... resources)`
Create a new GenericXmlApplicationContext, loading bean definitions from the given resources and automatically refreshing the context.

## Method Summary

Modifier and Type
Method
Description
`final org.springframework.beans.factory.xml.XmlBeanDefinitionReader`
`getReader()`
Exposes the underlying `XmlBeanDefinitionReader` for additional configuration facilities and `loadBeanDefinition` variations.
`void`
`load(Class<?> relativeClass, String... resourceNames)`
Load bean definitions from the given XML resources.
`void`
`load(String... resourceLocations)`
Load bean definitions from the given XML resources.
`void`
`load(org.springframework.core.io.Resource... resources)`
Load bean definitions from the given XML resources.
`void`
`setEnvironment(org.springframework.core.env.ConfigurableEnvironment environment)`
Delegates the given environment to underlying `XmlBeanDefinitionReader`.
`void`
`setValidating(boolean validating)`
Set whether to use XML validation.

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

`cancelRefresh, closeBeanFactory, getAutowireCapableBeanFactory, getBeanDefinition, getBeanFactory, getClassLoader, getDefaultListableBeanFactory, getResource, getResources, isAlias, isBeanDefinitionOverridable, isBeanNameInUse, refreshBeanFactory, refreshForAotProcessing, registerAlias, registerBean, registerBean, registerBean, registerBean, registerBean, registerBean, registerBeanDefinition, removeAlias, removeBeanDefinition, setAllowBeanDefinitionOverriding, setAllowCircularReferences, setApplicationStartup, setClassLoader, setParent, setResourceLoader`

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

`addApplicationListener, addBeanFactoryPostProcessor, assertBeanFactoryActive, clearResourceCaches, close, containsBean, containsBeanDefinition, containsLocalBean, createEnvironment, destroyBeans, doClose, findAllAnnotationsOnBean, findAnnotationOnBean, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getApplicationName, getApplicationStartup, 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, 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, setDisplayName, setId, start, stop, toString`

### Methods inherited from class org.springframework.core.io.DefaultResourceLoader

`addProtocolResolver, getProtocolResolvers, getResourceByPath, getResourceCache`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.springframework.core.AliasRegistry

`getAliases`

### Methods inherited from interface org.springframework.beans.factory.support.BeanDefinitionRegistry

`containsBeanDefinition, getBeanDefinitionCount, getBeanDefinitionNames`

### Methods inherited from interface org.springframework.context.ConfigurableApplicationContext

`addProtocolResolver`

## Constructor Details

### GenericXmlApplicationContext

public GenericXmlApplicationContext()
Create a new GenericXmlApplicationContext that needs to be `loaded` and then manually `refreshed`.

### GenericXmlApplicationContext

public GenericXmlApplicationContext(org.springframework.core.io.Resource... resources)
Create a new GenericXmlApplicationContext, loading bean definitions from the given resources and automatically refreshing the context.

Parameters:
  `resources` - the resources to load from

### GenericXmlApplicationContext

public GenericXmlApplicationContext(String... resourceLocations)
Create a new GenericXmlApplicationContext, loading bean definitions from the given resource locations and automatically refreshing the context.

Parameters:
  `resourceLocations` - the resources to load from

### GenericXmlApplicationContext

public GenericXmlApplicationContext(Class<?> relativeClass, String... resourceNames)
Create a new GenericXmlApplicationContext, loading bean definitions from the given resource locations and automatically refreshing the context.

Parameters:
  `relativeClass` - class whose package will be used as a prefix when loading each specified resource name
  `resourceNames` - relatively-qualified names of resources to load

## Method Details

### getReader

public final org.springframework.beans.factory.xml.XmlBeanDefinitionReader getReader()
Exposes the underlying `XmlBeanDefinitionReader` for additional configuration facilities and `loadBeanDefinition` variations.

### setValidating

public void setValidating(boolean validating)
Set whether to use XML validation. Default is `true`.

### setEnvironment

public void setEnvironment(org.springframework.core.env.ConfigurableEnvironment environment)
Delegates the given environment to underlying `XmlBeanDefinitionReader`. Should be called before any call to `#load`.

Specified by:
  `setEnvironment` in interface `ConfigurableApplicationContext`
Overrides:
  `setEnvironment` in class `AbstractApplicationContext`
Parameters:
  `environment` - the new environment
See Also:
  - `AbstractApplicationContext.createEnvironment()`

### load

public void load(org.springframework.core.io.Resource... resources)
Load bean definitions from the given XML resources.

Parameters:
  `resources` - one or more resources to load from

### load

public void load(String... resourceLocations)
Load bean definitions from the given XML resources.

Parameters:
  `resourceLocations` - one or more resource locations to load from

### load

public void load(Class<?> relativeClass, String... resourceNames)
Load bean definitions from the given XML resources.

Parameters:
  `relativeClass` - class whose package will be used as a prefix when loading each specified resource name
  `resourceNames` - relatively-qualified names of resources to load