【问题标题】:Do we have dispatcher servlet in spring boot application?我们在 Spring Boot 应用程序中是否有调度程序 servlet?
【发布时间】:2020-02-05 12:20:32
【问题描述】:
根据我的理解,当一个 spring 应用程序启动时,请求会发送到调度程序 Servlet,然后从那里它被调度到相应的控制器。在 spring mvc 中,我们在 web.xml 文件中定义 Dispatcher Servlet。我想知道 Spring Boot 应用程序的过程是否相同,这也意味着应用程序请求会发送到调度程序 Servlet,然后从那里将其调度到相应的控制器。
如果我们在 Spring Boot 应用程序中定义调度程序 Servlet 是在哪里?
【问题讨论】:
标签:
java
spring
spring-boot
【解决方案1】:
是的spring boot使用dispatcher servlet,它位于DispatcherServlet中
类的完全限定名:
org.springframework.web.servlet.DispatcherServlet
在普通的java web应用程序中,web.xml是声明web应用程序的主要组件和结构定义的来源,如servlet、filter等,换句话说,它是我们web应用程序的元数据,tomcat等servlet容器用于知道如何运行应用程序。
在上面提到的spring boot中,dispatcher serverlet是在DispatcherServletAutoConfiguration里面声明的
类的完全限定名:
org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration
【解决方案2】:
Dispatcher Servlet 是“Spring MVC”的一部分。
严格来说,Spring boot 应用程序不一定必须运行 Spring MVC,尽管在大多数实际情况下确实如此。
所以,如果 spring boot 应用程序运行 spring mvc,那么引擎盖下肯定存在一个 DispatcherServlet。