Spring

时间:2017-08-22 12:10:00

标签: java spring-mvc servlets

在这件事上有很多Q和As,但我没有看到为什么我的项目有效的答案。我按照教程开始了,所以它才有效。这是我在Web.xml中的Spring Dispatcher Servlet的声明:

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>

然后我将我的servlet定义放在名为dispatcher-servlet.xml的同一文件夹中的文件中。但我没有在web.xml中声明该定义可以在该特定文件中找到。 Web应用程序如何知道这是正确的文件?

我在答案中看到了该文件的其他默认名称,但没有像我一样。 dispatcher-servlet.xml是Spring知道并可以找到的默认名称吗?

1 个答案:

答案 0 :(得分:3)

来自Spring MVC文档:

  

初始化DispatcherServlet后,Spring MVC会查找   在您的WEB-INF目录中命名为[servlet-name] -servlet.xml的文件   Web应用程序并创建在那里定义的bean,覆盖   全局中使用相同名称定义的任何bean的定义   范围。

由于您的servlet名称是&#39;调度员&#39; Spring在WEB-INF文件夹的默认位置查找文件dispatcher-servlet.xml。

https://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html