当前位置: 首页 > wzjs >正文

济南会做网站的公司网上做任务挣钱的网站

济南会做网站的公司,网上做任务挣钱的网站,做网站的大骗子,网站建设幻灯片背景图片素材HandlerAdapter 在 Spring MVC 中扮演着**适配器(Adapter)**角色。它的核心作用是适配不同类型的处理器。 一、 HandlerAdapter 的核心作用: 适配不同类型的 Handler: Spring MVC 支持多种定义 Handler 的方式: 目前版本中常用的…

HandlerAdapter 在 Spring MVC 中扮演着**适配器(Adapter)**角色。它的核心作用是适配不同类型的处理器。

一、 HandlerAdapter 的核心作用:

  1. 适配不同类型的 Handler: Spring MVC 支持多种定义 Handler 的方式:

    • 目前版本中常用的:使用 @Controller 注解的类中带有 @RequestMapping 注解的方法 (HandlerMethod)。
    • 旧式的:实现 org.springframework.web.servlet.mvc.Controller 接口的类。
    • 旧式的:实现 org.springframework.web.HttpRequestHandler 接口的类。
    • 函数式:HandlerFunction (配合 RouterFunction 使用)。
    • 还有自定义 Handler 类型。
      这些不同类型的 Handler,其调用方式、参数解析方式、返回值处理方式都可能不同。DispatcherServlet 本身并不知道如何调用具体的 Handler 类型。
  2. 统一调用接口: HandlerAdapter 提供了一个统一的接口(handle 方法),DispatcherServlet 只需要调用这个统一的接口,而无需关心底层 Handler 的具体实现细节。HandlerAdapter 内部负责统一调用具体的 Handler 类型。

  3. 封装调用细节: HandlerAdapter 不仅仅是简单的调用 Handler 方法,它还负责处理调用过程中的复杂细节,特别是对于注解驱动的 HandlerMethod

    • 方法参数解析 (Argument Resolution): 利用 HandlerMethodArgumentResolver 解析 Controller 方法的各种参数(如 @RequestParam, @PathVariable, @RequestBody, Model, HttpServletRequest 等),从请求中提取数据、进行类型转换、数据绑定和校验。
    • 方法返回值处理 (Return Value Handling): 利用 HandlerMethodReturnValueHandler 处理 Controller 方法的各种返回值类型(如 String 视图名、ModelAndView@ResponseBody 对象、ResponseEntity 等),进行视图解析或写入响应体。

二、 为什么 DispatcherServlet 不直接调用 Controller 方法?

DispatcherServlet 不直接调用 Controller 方法,而是通过 HandlerAdapter 进行调用,主要是基于以下设计原则和考虑:

  1. 遵循开闭原则 (Open/Closed Principle):

    • 对扩展开放: 如果未来 Spring MVC 需要支持一种全新的 Handler 类型,只需要增加一个新的 HandlerAdapter 实现即可,而不需要修改 DispatcherServlet 的核心代码
    • 对修改关闭: DispatcherServlet 的核心调度逻辑保持不变,不用因为 Handler 类型的增多而变化。
  2. 保持 DispatcherServlet 的职责单一:

    • DispatcherServlet 的核心职责是请求的调度和协调,它负责整个请求处理流程的控制。如果让它直接处理各种 Handler 的调用细节(参数解析、返回值处理等),就会违反单一职责原则,使其变得过于庞大和复杂,难以维护。
  3. 解耦 (Decoupling):

    • DispatcherServlet 与具体的 Handler 实现解耦。DispatcherServlet 只依赖于 HandlerAdapter 接口,不依赖于任何具体的 Controller 或 Handler 实现类。这使得系统更加灵活,组件之间的依赖性更低。
  4. 提高可测试性:

    • 可以独立的测试 DispatcherServlet 的调度逻辑,也可以独立的测试不同的 HandlerAdapter 对特定 Handler 类型的适配和调用逻辑。
  5. 封装复杂性:

    • 调用一个注解驱动的 Controller 方法涉及到很多复杂的操作(反射调用、参数解析、数据绑定、类型转换、校验、返回值处理等)。将这些复杂的逻辑封装在专门的 HandlerAdapter(如 RequestMappingHandlerAdapter)内部,使得 DispatcherServlet 的代码保持简洁。

总结:

HandlerAdapter 的存在是 Spring MVC 框架灵活性和可扩展性的关键体现。它像一个万能插座转换器一样,允许 DispatcherServlet 这个“电源插座”能够驱动各种不同“插头”(Handler 类型)的“电器”。通过引入 HandlerAdapter 这一层,Spring MVC 实现了对不同处理器类型的统一调度,保持了 DispatcherServlet 的简洁和稳定,并遵循了良好的面向对象设计原则(如开闭原则、单一职责原则),使得框架易于扩展和维护。如果 DispatcherServlet 直接调用 Controller 方法,整个框架的设计将会变得非常脆弱和僵化。


文章转载自:

http://xO6P4SuC.qhjkz.cn
http://TIWgtKrW.qhjkz.cn
http://V9ldzV58.qhjkz.cn
http://oRwTO47m.qhjkz.cn
http://9iGcHWJ7.qhjkz.cn
http://GrCXYC4a.qhjkz.cn
http://zJ8TOxGR.qhjkz.cn
http://FabpB9F7.qhjkz.cn
http://wWrYvL9T.qhjkz.cn
http://4JKP55gz.qhjkz.cn
http://jRDntqB3.qhjkz.cn
http://P1OQtB31.qhjkz.cn
http://4C9nBx0N.qhjkz.cn
http://9GTetkeh.qhjkz.cn
http://LcVqhZhb.qhjkz.cn
http://vxuZHc2U.qhjkz.cn
http://2ylX4a9k.qhjkz.cn
http://KNGih82s.qhjkz.cn
http://KSjYenpV.qhjkz.cn
http://G6pw2SS3.qhjkz.cn
http://adiJc6yh.qhjkz.cn
http://Jl8OBoJ1.qhjkz.cn
http://u8zelsEK.qhjkz.cn
http://HYtr6L0v.qhjkz.cn
http://s1nKwQya.qhjkz.cn
http://4IdbDV6j.qhjkz.cn
http://ZdYpRlg1.qhjkz.cn
http://XE2WtQrW.qhjkz.cn
http://IKd6onxS.qhjkz.cn
http://s3geaSMJ.qhjkz.cn
http://www.dtcms.com/wzjs/629768.html

相关文章:

  • iis网站架设教程一般什么行业做网站的多
  • 公司微网站建设做男装比较好的网站
  • wordpress中英文站点西安小程序建设公司
  • 登录官方网站wordpress在线更新要多久
  • 建网站是怎么造成的大连百度推广seo
  • 网站开发调查问卷免费做网站怎么做网站吗
  • 黑龙江省建设厅官方网站市场营销是学什么
  • 做网站的公司有哪些胶南市场建设服务中心网站
  • 福田网站建设设计公司网站免费源码大全
  • wordpress的滑块换成图片长春网站优化指导
  • cnnic可信网站必须做吗建设部继续教育网站
  • 男女做暖暖网站wordpress文章链接设置
  • 哪家公司建5g基站在线制作图片背景
  • 工程项目网站上海高端网站建设制作
  • 河南住房和城乡建设厅职称网站官方企业微信app下载
  • 建立一个网站怎样赚钱搜索引擎优化培训班
  • 兰州做门户网站潍坊网站建设服务商
  • 网站建设深圳给源码做网站go和php用哪个好
  • 有公司可以做网站升级ipv6卸载wordpress
  • 泉州网站建设优化公司网络公司门头
  • 数据管理系统网站模板九江学网站建设
  • 做网站做哪个行业好高质量的猎建筑人才
  • 上海 建设工程质量监督站网站园林景观设计公司组织架构
  • 关于申请开通网站建设的请示长沙网站设计我选刻
  • 镇江教育平台网站建设专业的铁岭做网站公司
  • 城乡建设局网站网站开发大学
  • 网站怎么做长截图青岛互联网企业
  • 企业网站建设 详细方案网站如何做成app
  • 网站推广 网站做网站需要服务器吗
  • discuz可以做门户网站吗电商平台建设实施方案