Доброго времени суток всем! Меня интересует вопрос, связанный с пониманием смысла настройки параметров Spring MVC, в файле дескриптора развертывания (web.xml). Обычно я могу развернуть spring веб-приложение, работающее на Tomcat, настроив в web.xml только DispatcherServlet:
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/mvc-dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
Кстати, сразу хотелось бы прояснить один момент : Если мой mvc-dispatcher находить в WEB-INF/ , то можно же явно не указывать ему contextConfigLocation, если еще и соответствует имени файла, без суффикса -servlet?
Вернусь к основному вопросу: Я видел, что многие указывают в web.xml, еще дополнительные параметры, при которых у меня приложение работает абсолютно также:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
К сожалению, не смог загуглить нормального объяснения, что же такое listener и для чего он служит, буду очень благодарен если откроете его смысл. Так же хочется понять к чему именно относится инициализация параметра contextConfigLocation.
Из моих предположений только то, что это некое логическое разделение, удобное для разработчика, т.е в одной части прописать одни бины(Только вот какие), а в другой, для веба, где должен быть, допустим InternalResourceViewResolver описан.