WebApplicationContext
implementation which accepts annotated classes as input - in particular
@Configuration-annotated
classes, but also plain @Component
classes and JSR-330 compliant classes using javax.inject annotations. Allows
for registering classes one by one (specifying class names as config location) as well
as for classpath scanning (specifying base packages as config location).

To make use of this application context, the
"contextClass" context-param for
ContextLoader and/or "contextClass" init-param for FrameworkServlet must be set to
the fully-qualified name of this class.

As of Spring 3.1, this class may also be directly instantiated and injected into
Spring's DispatcherServlet or ContextLoaderListener when using the
new WebApplicationInitializer
code-based alternative to web.xml. See its Javadoc for details and usage examples.