Предположим, что у меня есть проект Spring Java, и я пытаюсь настроить его как сервлет веб-сервера. Вот усеченная версия файла web.xml:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/generalApplicationContext.xml
</param-value>
</context-param>
<servlet>
<servlet-name>my-servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/specificApplicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>my-servlet</servlet-name>
<url-pattern>/foo/*</url-pattern>
</servlet-mapping>
Ключевым моментом здесь является то, что я указал два загружаемых файла XML. Один из них является общим для моего приложения, а другой - для сервлета "my-servlet". Для настройки с одним сервлет-отображением это не имеет смысла. Тем не менее, мой проект имеет несколько отображений сервлета, и каждый из них имеет специальные настройки Spring.
Мой вопрос: Какой контекстConfigLocation будет загружен сначала Spring? Будет ли это generalApplicationContext.xml или это будет specificApplicationContext.xml? Что еще более важно, действительно ли порядок загрузки даже материи? Из моих усилий по отладке кажется очевидным, что это происходит, потому что я получаю разные ошибки, когда я перемещаю некоторую независимую конфигурацию Spring из одного файла в другой.
Примечание. Хорошая практика дискуссионная или нет, если использовать несколько конфигураций Spring для нескольких сопоставлений сервлетов. То же самое касается использования конфигурации XML вместо новой конфигурации Java. Но это не то, что я пытаюсь спросить здесь. Попробуем сосредоточиться на моем главном вопросе.