Spring 中调度程序 servlet xml 的名称



在这个问题上有很多Q和As,但我还没有看到为什么我的项目有效的答案。我按照教程开始了它,所以它只是工作。这是我的Spring Dispatcher Servlet在web.xml中的声明:

<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的同一文件夹中的文件中。但我并不是在网络上声明.xml定义可以在该特定文件中找到。Web 应用如何知道这是正确的文件?

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

来自Spring MVC文档:

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

由于您的 servlet 名称是"dispatcher",Spring 会在 WEB-INF 文件夹的默认位置查找文件调度程序-servlet.xml。

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

最新更新