Java 什么';SpringMVC中控制器和处理程序的区别是什么?

Java 什么';SpringMVC中控制器和处理程序的区别是什么?,java,spring,spring-mvc,Java,Spring,Spring Mvc,SpringMVC的文档有时会提到“处理程序”或“请求处理程序”。例如,他说: HandlerMapping接口的实现,用于从URL映射到请求处理程序bean 有时它会提到控制器。例如,有一个名为org.springframework.web.servlet.mvc.Controller()的接口 我的问题是:控制器和处理程序是一样的吗?一般来说,控制器就是处理程序,但处理程序不一定是控制器 例如,HttpRequestHandler、WebRequestHandler、MessageHandl

SpringMVC的文档有时会提到“处理程序”或“请求处理程序”。例如,他说:

HandlerMapping接口的实现,用于从URL映射到请求处理程序bean

有时它会提到控制器。例如,有一个名为org.springframework.web.servlet.mvc.Controller()的接口


我的问题是:控制器和处理程序是一样的吗?

一般来说,控制器就是处理程序,但处理程序不一定是控制器

例如,
HttpRequestHandler
WebRequestHandler
MessageHandler
都是可以使用
DispatcherServlet
的处理程序。(((
@
)控制器是执行web请求并返回视图的处理程序。)

简而言之,处理程序只是一个术语,它既不是类也不是接口。它负责执行映射。

A是一种特定类型的
处理程序
,但并非所有
处理程序
s都是
控制器
s

要执行一种类型的
处理程序
有一个,对于每种类型的
处理程序
有一个不同的
handleAdapter
。您有和
@Controller
,还有一个plain可以是
处理程序
。或者,如果您有一些自定义的东西,您甚至可以实现自己的。

处理程序是一个包含所有服务细节的处理程序。
控制器是一个独占实现

在Spring中,我们有以下不同类型的处理程序:

  • HandlerMapping
    :使用
    HandlerMapping
    策略将HTTP客户端请求映射到某个处理程序控制器和/或方法。这是基于请求URL和HTTP方法完成的,但也可能包括请求参数、请求头或其他自定义因素。
    例如:
    DefaultAnnotationHandlerMapping
    SimpleUrlHandlerMapping
    BeanNameUrlHandlerMapping
  • handleAdapter
    :DispatcherServlet使用handleAdapter调用方法。它将
    DispatcherServlet
    与控制器实现类解耦。
    例如:
    注释方法HandlerAdapter
    HttpRequestHandlerAdapter
    请求映射HandlerAdapter
    SimpleController HandlerAdapter
    SimpleServletHandlerAdapter