3.2. Bootstrapping web applications with JavaConfigWebApplicationContext
Prev | 3. Using @Configuration classes | Next

## 3.2. Bootstrapping web applications with `JavaConfigWebApplicationContext`

`JavaConfigWebApplicationContext` allows for seamlessly bootstrapping `@Configuration` classes within your servlet container's `web.xml` deployment descriptor. This process requires no Spring XML whatsoever:

    <web-app>
        <!-- Configure ContextLoaderListener to use JavaConfigWebApplicationContext
             instead of the default XmlWebApplicationContext -->
        <context-param>
            <param-name>contextClass</param-name>
            <param-value>
                org.springframework.config.java.context.JavaConfigWebApplicationContext
            </param-value>
        </context-param>

        <!-- Configuration locations must consist of one or more comma- or space-delimited
             fully-qualified @Configuration classes -->
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>example.ApplicationConfig</param-value>
        </context-param>

        <!-- Bootstrap the root application context as usual using ContextLoaderListener -->
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>

        <!-- Declare a Spring MVC DispatcherServlet as usual -->
        <servlet>
            <servlet-name>dispatcher</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <!-- Configure DispatcherServlet to use JavaConfigWebApplicationContext
                 instead of the default XmlWebApplicationContext -->
            <init-param>
                <param-name>contextClass</param-name>
                <param-value>
                    org.springframework.config.java.context.JavaConfigWebApplicationContext
                </param-value>
            </init-param>
            <!-- Again, config locations must consist of one or more comma- or space-delimited
                 and fully-qualified @Configuration classes -->
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>example.web.ServletConfig</param-value>
            </init-param>
        </servlet>

        <!-- map all requests for /main/* to the dispatcher servlet -->
        <servlet-mapping>
            <servlet-name>dispatcher</servlet-name>
            <url-pattern>/main/*</url-pattern>
        </servlet-mapping>
    </web-app>

For basic information regarding initialization parameters to `DispatcherServlet` and use of `ContextLoaderListener`, see Chapter 13. Web MVC framework of the Core Spring Framework documentation.

Prev | Up | Next
3. Using @Configuration classes | Home | 4. Modularizing configurations