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

JAVA-SSM学习5 SpringMVC

ああ飞んでみたとき私はどうなるの?

SpringMVC

SpringMVC技术和Servlet一样,都属于Web层开发技术

之前开发控制层的代码就是典型的使用SpringMVC技术

@RequestMapping("/report")
@RestController
public class ReportController {@Autowiredprivate ReportService reportService;@LogOperation@GetMapping("/empJobData")public ResultData getEmpJobData(){JobOption jobOption = reportService.getEmpJobData();return ResultData.success(jobOption);}@LogOperation@GetMapping("/empGenderData")public ResultData getEmpGenderData(){List<Map<String,Object>> empGenderData = reportService.getEmpGenderData();return ResultData.success(empGenderData);}
}

SpringMVC介绍

image

SpringMVC是一种基于JAVA实现MVC模型的轻量级Web框架

MVC模型

MVC模型‌是SpringMVC架构设计的核心,它将Web应用的逻辑划分为三个职责分明的组件:‌Model(模型)‌、‌View(视图)Controller(控制器)‌,实现关注点分离,提升代码可读性与可维护性。

Model:封装应用程序的数据和核心业务规则,如数据库操作、服务调用、数据校验等。在SpringMVC中‌,通常由Service层或DAO层实现,Controller通过调用这些服务获取数据,并将其放入Model、ModelMap或ModelAndView对象中传递给View。

View:负责将Model中的数据以用户友好的方式呈现出来,如HTML页面、JSON、XML等。在SpringMVC中‌,可以是JSP、Thymeleaf、FreeMarker等模板引擎,也可以是RESTful接口直接返回的JSON数据(此时View由HttpMessageConverter隐式处理)。

Controller:接收用户请求,调用Model处理业务逻辑,并决定使用哪个View进行响应。在SpringMVC中‌,使用@Controller或@RestController注解的类,配合@RequestMapping系列注解来映射URL路径。

SpringMVC处理流程

DispatcherServlet‌(前端控制器)接收所有 HTTP 请求
‌②DispatcherServlet调用HandlerMapping(定位处理器),根据请求URL、方法、参数等信息查找匹配的处理器(Handler)。例如最常用的是RequestMappingHandlerMapping,其基于@RequestMapping注解进行映射
③查找到处理器后,由HandlerAdapter‌(适配并执行处理器)进行统一调度,调用supports()判断是否支持该处理器,再通过handle()实际调用Controller(控制层)的方法并返回结果。例如常见的是RequestMappingHandlerAdapter,其用于处理@RequestMapping注解的方法
Controller返回ModelAndView‌(模型数据 + 视图名)HandlerAdapter‌在返回给DispatcherServlet‌
ViewResolver‌解析视图名称为实际页面(如 JSP、Thymeleaf)
View‌渲染数据并返回响应
⑦完成渲染后,DispatcherServlet将响应返回给客户端,请求流程结束。

具体流程图如下:
image

SpringMVC

http://www.jsqmd.com/news/629871/

相关文章:

  • 模组管理的智能革命:Nexus Mods App如何重塑游戏体验
  • YOLO-Master 与 YOLO 开始碳
  • 服务网格治理
  • 用STC89C52和L298N模块DIY寻迹小车,从接线到调参保姆级教程
  • OpCore Simplify终极指南:如何在30分钟内完成OpenCore EFI智能配置
  • 2026奇点智能技术大会核心议程泄露(仅限前500名技术负责人获取的微调参数黄金组合)
  • SD1.5 Archive 镜像使用全解析:Web界面操作与参数设置指南
  • ComfyUI视觉AI引擎:无需编程构建稳定扩散工作流的最佳选择
  • 从‘水龙头’到‘智能开关’:三极管在STM32单片机项目里的两种核心用法(附电路图避坑)
  • 为什么83%的大模型项目在等保三级和算法备案阶段卡壳?(附工信部最新《AI系统安全评估模板》V2.3解读)
  • 如何在Switch上安装wiliwili:第三方B站客户端的终极使用指南
  • QuickLook Video:让Mac原生支持MKV等格式的视频预览神器
  • 终极指南:如何用ViGEmBus解决Windows游戏手柄兼容性难题
  • 重新定义数字记忆:WeChatMsg如何让你的微信聊天记录获得永恒生命
  • AI视觉检测:INT8 量化对工业视觉检测精度的影响
  • DS4Windows:专业开源工具实现PS4/PS5手柄在Windows平台完美兼容
  • 5分钟掌握Dear ImGui:C++开发者必备的轻量级GUI终极指南
  • Linux屏幕取词翻译终极指南:CuteTranslation完整使用教程
  • 2026届最火的六大AI辅助论文平台解析与推荐
  • 基于yolo11工地安全区域检测 工地安全帽识别 工地场景反光衣检测 目标检测之施工区域安全检测
  • 别再死磕ADS8688了!用STM32F407+AD9833做电路特性测试仪,我踩过的坑都在这了
  • 基于 Ultralytics YOLOv8 的工业缺陷检测模型实战训练
  • 3分钟快速修复PCL2启动器Forge安装失败的终极指南
  • 亚马逊NeurIPS 2024论文技术速览
  • 从Photoshop到Inkscape:设计师的矢量图形迁移指南(附常用功能对照表)
  • Akagi:麻将AI分析工具的技术实现与应用场景
  • RK平台实战:一个resource.img里塞进两个dtb,实现单固件适配双硬件
  • BOTW-Save-Editor-GUI:塞尔达传说旷野之息存档编辑器的完整指南
  • 终极指南:如何使用KrillinAI轻松制作专业级多语言视频
  • 终极Windows安装指南:如何用MediaCreationTool.bat轻松绕过硬件限制安装Windows 11