Generating multiple ApplicationContexts

The root ApplicationContext is only used for Spring-specific dependency injection such as creating and loading interceptors, message handling resources, and view resolvers. It is not recommended to contain middle-tier models, services, data sources, and web services configuration because it might affect the runtime performance of the DispatcherServlet registration and loading. This recipe will provide a solution on how to organize beans per layer or module to avoid a convoluted bean injection setup.