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

买了个域名 如何建网站移动营销型网站建设

买了个域名 如何建网站,移动营销型网站建设,网站建设驻地开发合同,广告制作公司简介怎么写欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 欢迎评论交流,感谢您的阅读😄。 目录 适配器模式Spring MVC的适配器模式 适配器模式 适配器模式(Adapter Pattern&a…

欢迎来到啾啾的博客🐱。
记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。
欢迎评论交流,感谢您的阅读😄。

目录

  • 适配器模式
  • Spring MVC的适配器模式

适配器模式

![[2_Spring中的适配器模式.png]]

适配器模式(Adapter Pattern)是将一个类的接口转换成客户希望的另一种接口。从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
一般包含目标角色(Target)、源角色(Adaptee)、适配器角色(Adapter)。
通过继承或关联的方式,由适配器将源角色转换成目标角色。

Spring MVC的适配器模式

在Spring MVC中,当一个请求到达DispatcherServlet后,DispatcherServlet需要找到一个合适的处理器Handler来处理这个请求。
这个处理器可以有多种形式,如@Controller注解类中的方法:

@Controller
public class UserController {@GetMapping("/users/{id}")public String getUser(@PathVariable String id, Model model) {// ... 逻辑 ...return "userView";}
}

这里的 getUser 方法就是一个 Handler。
还有实现了HttpRequestHandler 接口的类:

public class MyHttpRequestHandler implements HttpRequestHandler {@Overridepublic void handleRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// ... 逻辑 ...response.getWriter().write("Hello from HttpRequestHandler!");}
}

DispatcherServlet希望以统一的方式调用各种类型的 Handler。
DispatcherServlet 本身并不直接知道如何调用 UserController 类的 getUser 方法,或者 MyHttpRequestHandler 类的 handleRequest 方法。这些 Handler 的调用方式、参数解析、返回值处理都千差万别。

这个时候,适配器登场了。Spring MVC定义了一个用户DispatcherServlet期望的目标角色HandlerAdapter接口,HandlerAdapter接口定义了一个DispatcherServlet可以统一调用的标准方法,handle()方法。
被适配的源角色就是上面提到的类型不同的Handler。

但是当我们去翻看源码时,我们发现了一件事情,Spring不止有一个适配器角色。如下:
![[2_Spring中的设计模式-2.png]]

![[2_Spring中的设计模式-1.png]]

这是因为Spring提供了多种HandlerAdapter的实现,每种实现负责适配一种或一类特定的Handler。
RequestMappingHandlerAdapter处理的适配对象为:被@RequestMapping、@GetMapping注解的控制器方法。
HttpRequestHandlerAdapter处理的适配对象为:实现了org.springframework.web.HttpRequestHandler 接口的类的实例。

Spring在适配器模式应用时做了适配职责的分离。
这样的设计和Java在设计类加载机制时相似,更灵活,易于扩展与维护。

![[【Spring】Spring中的适配器模式.png]]

http://www.dtcms.com/a/557784.html

相关文章:

  • Windows电脑数据迁移实战:如何无损迁移应用程序与系统设置
  • 专科医院网站建设管理类培训课程
  • 轮询中断 串口实训
  • IO接口介绍
  • 石家庄做物流的网站室内设计方案设计说明
  • rocketMQ-基本使用和原理简介
  • 2025出海品牌系统选型报告:破解业财一体化的隐形鸿沟
  • 自适应网站推广开发网站教程
  • ESP32 FreeRTOS任务与内存全指南
  • HeidiSQL导入与导出数据
  • 深圳龙华住房和建设局网站在线做gif图网站
  • 顺通建设集团有限公司 网站网站面包屑导航代码
  • springDI注入
  • Service层的使用 - Spring框架 - IOC
  • 多语言网站开发公司佛山国外网站开发
  • 感恩节火鸡大餐
  • ppt做书模板下载网站有哪些网站建设翻译
  • 【电子元器件·11】PN结;耗尽区;PN结的伏安特性曲线(重要)
  • 边界扫描测试原理 14 -- BSDL 8 用户提供的 VHDL 包
  • Rust所有权(下):引用、借用与切片
  • 2025年江西省职业院校技能大赛高职组“区块链技术应用”任务书(6卷)
  • 编译tiff:arm64-linux-static报错 Could NOT find CMath (missing: CMath_pow)
  • SYN关键字辨析,各种锁优缺点分析和面试题讲解
  • 3.1.2.Python基础知识
  • Qt中使用图表库
  • LV.5 文件IO
  • 做目录网站注意沧县网络推广公司
  • 技术准备十五:Elasticsearch
  • 专门做面包和蛋糕的网站山东家居行业网站开发
  • linux挂载新硬盘并提供nfs服务