blob: 59569cef0f8ff8740ca3740c94a633d866615c3d [file] [log] [blame] [view]
---
layout: core-developers
title: Configuration Provider & Configuration
---
# Configuration Provider & Configuration
The ConfigurationProvider interface describes the framework's configuration\. By default, the framework loads its configurations via an XML document by using the `StrutsXmlConfigurationProvider`\. The provider can be configured through a Dispatcher's [DispatcherListener](dispatcher-listener.html)\.
## Example
```java
static {
Dispatcher.addDispatcherListener(new DispatcherListener() {
....
public void dispatcherInitialized(Dispatcher du) {
ConfigurationManager confManager = du.getConfigurationManager();
confManager.addConfigurationProvider( ... );
}
....
});
}
```
## Configuration provider
`ConfigurationProvider` is the basic piece of configuration used to tie all the options together in `ConfigurationManager`\. There is few different implementations that are already used internally by the Apache Struts:
+ `XmlConfigurationProvider` \- proprietary XWork implementation which are using `xwork.xml` file as source of configuration 
+ `StrutsXmlConfigurationProvider` \- primary configuration provider, represents `struts.xml` and `struts-plugin.xml` files
+ `PropertiesConfigurationProvider` \- used to load `struts.properties`
+ `ServletContextAwareConfigurationProvider` \- marking interface allowing to inject `ServletContext` into provider
To inject your custom configuration provider use `configProviders` `<init-param/>` in [web.xml](web-xml.html)