Your context is being loaded twice. First by the ContextLoaderListener
because of this config
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/mvc-dispatcher-servlet.xml
</param-value>
</context-param>
And second by the DispatcherServlet
which, by default, tries to find a resource with the name of the servlet as declared here
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
and -servlet.xml
appended to the end, ie. mvc-dispatcher-servlet.xml
.
Your ContextLoaderListener
should be loading your root context, while the DispatcherServlet
should be loading the servlet context, which should include beans necessary for the controller and view configuration.