Стандартное веб-приложение spring (созданное с помощью шаблона Roo или "Spring MVC Project" ) создает web.xml с ContextLoaderListener и DispatcherServlet.  Почему они не только используют DispatcherServlet и загружают полную конфигурацию?
Я понимаю, что ContextLoaderListener следует использовать для загрузки материала, не относящегося к сети, и DispatcherServlet используется для загрузки веб-материала (контроллеров,...). И этот результат в двух контекстах: родительский и дочерний контекст.
Фон:
Я занимался этим стандартным способом в течение нескольких лет.
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:META-INF/spring/applicationContext*.xml</param-value>
</context-param>
<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Handles Spring requests -->
<servlet>
    <servlet-name>roo</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>WEB-INF/spring/webmvc-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
Это часто вызывало проблемы с двумя контекстами и зависимостями между ними. Раньше я всегда мог найти решение, и у меня есть сильное чувство, что это делает структуру программного обеспечения/архитектуру всегда лучше. Но теперь я столкнулся с проблемой с событиями обоих контекстов.
- Однако это заставляет меня переосмыслить этот два шаблона контекста, и я спрашиваю себя: зачем мне приходить в эту проблему, почему бы не загрузить все конфигурационные файлы spring одним DispatcherServlet и удалить ContextLoaderListener полностью. (Я все равно буду иметь разные конфигурационные файлы, но только один контекст.)
Есть ли причина не удалять ContextLoaderListener?
