【问题标题】:Name of dispatcher servlet xml in SpringSpring中调度程序servlet xml的名称
【发布时间】:2018-01-30 17:15:15
【问题描述】:

关于这个问题有很多 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 的同一文件夹中的一个文件中。但我并没有在 web.xml 中声明要在该特定文件中找到该定义。 Web 应用程序如何知道这是正确的文件?

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

【问题讨论】:

    标签: java spring-mvc servlets


    【解决方案1】:

    来自 Spring MVC 文档:

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

    由于您的 servlet 名称是“dispatcher”,因此 Spring 在您的 WEB-INF 文件夹的默认位置查找文件 dispatcher-servlet.xml。

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

    【讨论】:

    • 太棒了!我会保留这个问题(而不是删除它),以便其他人将来可以看到它。
    猜你喜欢
    • 2014-10-13
    • 1970-01-01
    • 2015-11-05
    • 2018-07-22
    • 2013-10-04
    • 1970-01-01
    • 2021-09-27
    • 2016-08-02
    • 2015-09-10
    相关资源
    最近更新 更多