Java 什么';SpringMVC中控制器和处理程序的区别是什么?
SpringMVC的文档有时会提到“处理程序”或“请求处理程序”。例如,他说: HandlerMapping接口的实现,用于从URL映射到请求处理程序bean 有时它会提到控制器。例如,有一个名为org.springframework.web.servlet.mvc.Controller()的接口Java 什么';SpringMVC中控制器和处理程序的区别是什么?,java,spring,spring-mvc,Java,Spring,Spring Mvc,SpringMVC的文档有时会提到“处理程序”或“请求处理程序”。例如,他说: HandlerMapping接口的实现,用于从URL映射到请求处理程序bean 有时它会提到控制器。例如,有一个名为org.springframework.web.servlet.mvc.Controller()的接口 我的问题是:控制器和处理程序是一样的吗?一般来说,控制器就是处理程序,但处理程序不一定是控制器 例如,HttpRequestHandler、WebRequestHandler、MessageHandl
我的问题是:控制器和处理程序是一样的吗?一般来说,控制器就是处理程序,但处理程序不一定是控制器 例如,
HttpRequestHandler
、WebRequestHandler
、MessageHandler
都是可以使用DispatcherServlet
的处理程序。(((@
)控制器是执行web请求并返回视图的处理程序。)
简而言之,处理程序只是一个术语,它既不是类也不是接口。它负责执行映射。A是一种特定类型的处理程序
,但并非所有处理程序
s都是控制器
s
要执行一种类型的处理程序
有一个,对于每种类型的处理程序
有一个不同的handleAdapter
。您有和@Controller
,还有一个plain可以是处理程序
。或者,如果您有一些自定义的东西,您甚至可以实现自己的。处理程序是一个包含所有服务细节的处理程序。控制器是一个独占实现 在Spring中,我们有以下不同类型的处理程序:
:使用HandlerMapping
策略将HTTP客户端请求映射到某个处理程序控制器和/或方法。这是基于请求URL和HTTP方法完成的,但也可能包括请求参数、请求头或其他自定义因素。HandlerMapping
例如:
,DefaultAnnotationHandlerMapping
,SimpleUrlHandlerMapping
李>BeanNameUrlHandlerMapping
:DispatcherServlet使用handleAdapter调用方法。它将handleAdapter
与控制器实现类解耦。DispatcherServlet
例如:
,注释方法HandlerAdapter
,HttpRequestHandlerAdapter
,请求映射HandlerAdapter
,SimpleController HandlerAdapter
SimpleServletHandlerAdapter