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

Spring MVC 核心知识点学习笔记

Spring MVC 核心知识点学习笔记学习日期2026.03.19核心内容Spring MVC概述 RequestMapping注解 Vue3前后端分离案例 请求参数绑定一、Spring MVC 基本概述1. 核心定义Spring MVC是Spring框架的Web层核心组件基于MVCModel-View-Controller设计模式用于快速开发Java Web应用核心目标是解耦请求处理流程简化接口开发、参数接收、响应返回等操作。2. 核心作用接收前端HTTP请求映射到指定方法Controller自动完成请求参数与Java对象的绑定处理响应返回页面/JSON数据集成Spring容器支持依赖注入、AOP等特性。3. 最简执行流程新手必记前端请求 → DispatcherServlet前端控制器→ HandlerMapping映射处理器→ Controller业务处理→ ModelAndView/JSON → DispatcherServlet → 前端响应二、核心注解RequestMapping1. 核心作用标注在类/方法上用于映射HTTP请求路径指定哪个请求由哪个方法处理。2. 常用属性重点属性作用示例value/path指定请求路径核心RequestMapping(“/user/list”)method指定请求方式GET/POST等method RequestMethod.GETparams限制请求必须包含指定参数params “id!1”produces指定响应数据格式如JSONproduces “application/json”3. 代码示例// 类级别统一前缀ControllerRequestMapping(/user)// 所有方法的路径前缀为 /userResponseBody// 全局返回JSON前后端分离必加publicclassUserController{// 方法级别具体路径 指定请求方式RequestMapping(value/get,methodRequestMethod.GET)publicUsergetUserById(Integerid){// 模拟查询用户UserusernewUser();user.setId(id);user.setName(张三);returnuser;// 自动转为JSON返回}// 简化注解Spring4.3GetMapping RequestMapping(methodGET)GetMapping(/list)publicListUsergetUserList(){returnArrays.asList(newUser(1,张三),newUser(2,李四));}}4. 简化注解高频使用GetMapping→ GET请求查询PostMapping→ POST请求新增PutMapping→ PUT请求修改DeleteMapping→ DELETE请求删除三、Spring MVC Vue3 前后端分离案例核心目标后端提供JSON接口Vue3前端调用接口并渲染数据跨域问题是重点。步骤1后端Spring MVC准备1. 关键配置解决跨域// 跨域配置类前后端分离必加ConfigurationpublicclassCorsConfigimplementsWebMvcConfigurer{OverridepublicvoidaddCorsMappings(CorsRegistryregistry){registry.addMapping(/**)// 所有接口允许跨域.allowedOriginPatterns(*)// 允许所有域名生产环境指定具体域名.allowedMethods(GET,POST,PUT,DELETE)// 允许的请求方式.allowCredentials(true)// 允许携带Cookie.maxAge(3600);// 预检请求有效期秒}}2. 编写JSON接口RestController// Controller ResponseBodyRequestMapping(/api)publicclassApiController{// 提供给Vue3的查询接口GetMapping(/goods)publicListGoodsgetGoodsList(){// 模拟商品数据ListGoodsgoodsListnewArrayList();goodsList.add(newGoods(1,手机,2999.0));goodsList.add(newGoods(2,电脑,5999.0));returngoodsList;}}步骤2Vue3前端调用1. 安装Axios请求工具npminstallaxios--save2. 编写Vue组件调用后端接口template div h2商品列表/h2 ul li v-foritem in goodsList :keyitem.id {{ item.name }} - {{ item.price }}元 /li /ul /div /template script setup import { ref, onMounted } from vue; import axios from axios; // 定义响应式数据 const goodsList ref([]); // 页面加载后调用后端接口 onMounted(async () { try { // 调用Spring MVC接口替换为你的后端地址 const res await axios.get(http://localhost:8080/api/goods); goodsList.value res.data; // 接收后端JSON数据 } catch (error) { console.log(请求失败, error); } }); /script关键注意事项后端端口确保Tomcat端口默认8080未被占用跨域配置必须加CorsConfig否则Vue请求会被浏览器拦截数据格式后端返回JSON前端直接接收即可Axios自动解析。四、Spring MVC 请求参数绑定核心规则Spring MVC会自动将HTTP请求参数与方法参数绑定底层通过HandlerAdapter实现支持多种参数类型。场景1基本类型参数String/Integer等// 请求示例/api/getUser?id1name张三GetMapping(/getUser)publicUsergetUser(Integerid,Stringname){// id自动绑定请求参数idname绑定nameUserusernewUser();user.setId(id);user.setName(name);returnuser;}场景2实体类参数对象绑定// 实体类publicclassUser{privateIntegerid;privateStringname;privateIntegerage;// 必须有无参构造器 getter/setter否则绑定失败}// 请求示例/api/addUser?id2name李四age20PostMapping(/addUser)publicStringaddUser(Useruser){// user对象的属性自动绑定请求参数return新增用户user.getName();}场景3JSON格式参数前后端分离核心// 请求示例POST /api/updateUser请求体为JSON{id:1,name:张三,age:21}PostMapping(/updateUser)publicStringupdateUser(RequestBodyUseruser){// RequestBody将请求体的JSON转为User对象必加return更新用户user.getId();}场景4数组/集合参数// 请求示例/api/deleteUsers?ids1ids2ids3DeleteMapping(/deleteUsers)publicStringdeleteUsers(Integer[]ids){// 数组绑定多个同名参数return删除用户IDArrays.toString(ids);}易错点总结实体类必须有无参构造器否则参数绑定失败JSON参数必须加RequestBody否则无法解析参数名不一致时用RequestParam指定映射// 请求参数是userName方法参数是nameGetMapping(/test)publicStringtest(RequestParam(userName)Stringname){returnname;}五、核心总结 易错点1. 核心知识点RequestMapping路径映射核心简化注解GetMapping等更常用前后端分离后端加跨域配置 返回JSON前端用Axios调用参数绑定基本类型直接绑定JSON参数加RequestBody实体类需getter/setter。2. 常见错误跨域未配置Vue请求报CORS错误重复依赖Tomcat启动报spring_web片段冲突需清理Maven依赖RequestBody遗漏JSON参数绑定为null实体类无getter/setter参数绑定失败。3. 学习建议先跑通最简案例如查询接口Vue渲染再扩展复杂场景重点掌握RequestBody和跨域配置前后端分离高频考点遇到报错先看控制台优先排查依赖冲突和参数绑定问题。

相关文章:

Spring MVC 核心知识点学习笔记

Spring MVC 核心知识点学习笔记 学习日期:2026.03.19 核心内容:Spring MVC概述 RequestMapping注解 Vue3前后端分离案例 请求参数绑定一、Spring MVC 基本概述 1. 核心定义 Spring MVC是Spring框架的Web层核心组件,基于MVC(Mod…...

使用Qwen3-ForcedAligner-0.6B实现高精度文本-语音对齐:原理与实战

使用Qwen3-ForcedAligner-0.6B实现高精度文本-语音对齐:原理与实战 1. 引言 你有没有遇到过这样的情况:听一段音频时,想要知道某个词或某句话具体出现在哪个时间点?或者在做视频字幕时,需要精确到每个字的出现时间&a…...

小熊猫Dev-C++:让C++编程变得像Python一样简单快捷的轻量级IDE

小熊猫Dev-C:让C编程变得像Python一样简单快捷的轻量级IDE 【免费下载链接】Dev-CPP A greatly improved Dev-Cpp 项目地址: https://gitcode.com/gh_mirrors/dev/Dev-CPP 你是否曾经因为C开发环境的复杂配置而头疼?是否在等待大型IDE启动时浪费了…...

Windows下PyCharm配置OpenCV环境:从Anaconda虚拟环境到cv2导入全流程

Windows下PyCharm配置OpenCV环境:从Anaconda虚拟环境到cv2导入全流程 在计算机视觉和图像处理领域,OpenCV无疑是最受欢迎的开源库之一。对于使用Python进行开发的Windows用户来说,PyCharm作为强大的IDE,配合Anaconda的虚拟环境管理…...

零基础玩转DeepSeek-R1:8B推理模型Ollama保姆级教程

零基础玩转DeepSeek-R1:8B推理模型Ollama保姆级教程 你是不是一直想试试那些厉害的AI模型,但每次都被复杂的安装步骤劝退?下载依赖、配置环境、处理版本冲突……光是想想就头疼。特别是看到DeepSeek-R1这种专业推理模型,总觉得离…...

Swin2SR模型结构详解:从Transformer到超分网络的创新设计

Swin2SR模型结构详解:从Transformer到超分网络的创新设计 1. 为什么需要Swin2SR:传统超分方法的瓶颈与突破 图像超分辨率任务的核心目标,是把一张模糊、低清的图片恢复成清晰、高分辨率的版本。过去几年里,我们用过双三次插值、…...

FLUX小红书极致真实V2与CNN结合的图像增强技术详解

FLUX小红书极致真实V2与CNN结合的图像增强技术详解 1. 引言 你是不是也遇到过这样的困扰:用AI生成的图片总觉得不够真实,细节模糊,色彩平淡,特别是想要那种小红书风格的精致感时,总是差那么点意思?今天我…...

中微CMS8S3680单片机在电源控制中的实战应用(附完整代码解析)

中微CMS8S3680单片机在电源控制中的实战应用(附完整代码解析) 在工业电源控制领域,8位单片机凭借其高性价比和可靠性始终占据重要地位。中微半导体推出的CMS8S3680系列以其灵活的引脚映射和丰富的存储资源,为电源管理系统提供了全…...

MCP对接OAuth 2026不踩坑的4个硬性前提,第3条90%企业尚未自查(附NIST SP 800-63B映射表)

第一章:MCP对接OAuth 2026的演进逻辑与合规定位随着全球数据主权立法加速落地,OAuth 2026作为IETF正式发布的下一代授权框架标准(RFC 9431),在细粒度权限控制、跨域设备信任链、零知识证明式令牌验证等方面实现范式升级…...

Qwen3.5-9B镜像免配置优势:unsloth优化版无需手动安装依赖一键启动

Qwen3.5-9B镜像免配置优势:unsloth优化版无需手动安装依赖一键启动 1. 开箱即用的Qwen3.5-9B体验 在当今AI模型部署领域,最令人头疼的问题莫过于复杂的依赖安装和环境配置。传统的大模型部署往往需要用户手动安装CUDA、PyTorch等数十个依赖包&#xff…...

Qwen3-TTS-12Hz-1.7B-Base实战落地:政务热线AI语音应答系统多语种支持改造

Qwen3-TTS-12Hz-1.7B-Base实战落地:政务热线AI语音应答系统多语种支持改造 1. 引言:当政务热线遇到多语种挑战 想象一下,你所在城市的12345政务服务便民热线,每天要接听成千上万个电话。市民们用普通话咨询政策、反映问题&#…...

nodejs基于vue水果蔬菜商城设计与实现

目录技术栈选择项目结构设计核心功能模块数据库设计关键接口定义前端页面实现后端逻辑开发测试与部署项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术栈选择 前端框架采用Vue.js,搭配V…...

保姆级教程:绕过Win11区域限制永久启用Copilot(附权限问题解决方案)

Windows 11 Copilot功能深度解锁指南:从原理到实践 微软Copilot作为新一代AI助手,正逐步整合到Windows生态中。然而部分地区的用户发现任务栏上的Copilot图标神秘消失,这背后涉及复杂的区域策略机制。本文将深入解析Copilot的启用逻辑&#x…...

突破单机限制:Nucleus Co-op开源工具实现本地多人游戏自由

突破单机限制:Nucleus Co-op开源工具实现本地多人游戏自由 【免费下载链接】splitscreenme-nucleus Nucleus Co-op is an application that starts multiple instances of a game for split-screen multiplayer gaming! 项目地址: https://gitcode.com/gh_mirrors…...

STM32实现ModbusRTU与CAN总线高效分包重组

目录 一、核心设计(STM32 适配版) 1. 硬件基础 2. 协议帧格式定义 二、完整代码实现(STM32F4 为例) 1. 头文件定义(modbus_can_convert.h) 2. 核心实现(modbus_can_convert.c)…...

R语言实战:用`rms`和`ggplot2`包搞定Cox回归的生存曲线可视化(附完整代码)

R语言实战:用rms和ggplot2包搞定Cox回归的生存曲线可视化(附完整代码) 在临床医学和流行病学研究中,生存分析是评估时间至事件数据的重要方法。Cox比例风险模型作为生存分析的核心工具,能够同时考虑生存时间和结局变量…...

cv_unet_image-colorization效果对比:自然风景与建筑图像着色作品集

cv_unet_image-colorization效果对比:自然风景与建筑图像着色作品集 黑白照片总带着一种时光的厚重感,但有时候,我们也会好奇,如果它们有了颜色,会是什么样子?是更接近历史的真实,还是能焕发出…...

IMX6Q双通道LVDS屏幕驱动:从设备树配置到双屏同显的实战解析

1. LVDS显示技术基础与IMX6Q硬件特性 LVDS(Low-Voltage Differential Signaling)是嵌入式设备中常见的显示接口技术,我在多个工业控制项目中都深度使用过这种方案。它的核心优势在于通过差分信号传输实现抗干扰能力,实测在电机设备…...

Enhancing Snapshot Compressive-spectral Imaging with Hybrid Deep Denoising and Total Variation Prior

1. 快照压缩光谱成像的挑战与机遇 高光谱成像技术近年来在遥感、医学诊断、工业检测等领域展现出巨大潜力,但传统成像方式需要逐波段扫描,导致数据采集效率低下。快照压缩光谱成像(Snapshot Compressive-spectral Imaging, SCI)技…...

GitHub中文插件:5分钟让GitHub界面说中文,开发者效率提升新选择

GitHub中文插件:5分钟让GitHub界面说中文,开发者效率提升新选择 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese …...

从人类司机到自动驾驶:拆解Apollo的LANE_CHANGE_DECIDER如何用‘滞后滤波器’解决变道犹豫和频繁摇摆

自动驾驶决策算法中的拟人化设计:Apollo变道决策模块的滞后滤波技术解析 当人类驾驶员在高速公路上准备变道时,会经历一系列复杂的判断过程——观察后视镜、评估前后车距、判断相对速度,最终做出平滑自然的变道动作。这种看似简单的行为背后&…...

Spark与Iceberg深度整合:构建高效数据湖表格式的最佳实践

1. 数据湖表格式的演进与挑战 数据湖已经成为现代企业数据架构的核心组件,但传统的数据湖实现面临着诸多挑战。想象一下这样的场景:某电商平台在大促期间发现数据异常,需要紧急排查问题。然而,当团队尝试回溯历史数据时&#xff0…...

SpringBoot校园便利平台毕业设计全流程指南:从开题到答辩PPT制作

SpringBoot校园便利平台毕业设计全流程实战指南 引言:毕业设计的价值与挑战 毕业设计是计算机专业学生四年学习成果的集中展示,也是从校园走向职场的重要过渡环节。一个优秀的SpringBoot校园便利平台毕业设计,不仅能帮助你在答辩中获得高分&a…...

AI万能分类器实战效果:开箱即用,分类准确率超预期

AI万能分类器实战效果:开箱即用,分类准确率超预期 1. 引言:当“万能”不再只是口号 想象一下这个场景:你手头有一堆用户反馈,需要快速把它们分成“产品问题”、“功能建议”和“服务咨询”三类。按照传统做法&#x…...

nodejs+vue基于springboot的重庆医科大学高校学科竞赛管理系统

目录技术栈选择系统模块划分数据库设计接口规范前端实现部署与测试扩展性考虑项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术栈选择 后端采用Spring Boot框架,提供RESTful API接口&am…...

Linux环境下LongCat-Image-Edit性能调优全攻略

Linux环境下LongCat-Image-Edit性能调优全攻略 如果你在Linux上跑过LongCat-Image-Edit,可能遇到过这样的场景:上传一张猫咪图片,输入“变成小老虎”,然后开始等待。看着终端里进度条慢悠悠地走,心里琢磨着这时间都够…...

Qwen3.5-27B开源生态整合:LangChain适配与多模态RAG构建教程

Qwen3.5-27B开源生态整合:LangChain适配与多模态RAG构建教程 1. 引言:Qwen3.5-27B模型概述 Qwen3.5-27B是当前开源社区中颇具影响力的多模态大语言模型,它不仅具备强大的文本理解和生成能力,还能处理图像内容。本教程将带您从零…...

DeepSeek、Kimi、笔灵谁最好用?5款网文作者亲测的AI写作神器横评

作为在网文圈一路摸爬滚打过来的我,面对“AI写小说”这个现象,心情其实挺复杂的。 这有点像工业革命时期的纺织工人看着蒸汽机——恐惧是真的,但效率的碾压也是真的。 不是纯用AI生成,而是用AI搭建了极其高效的“外挂工作流”。 …...

告别玄学调试:手把手教你用Keil MDK分析STM32的.map和启动文件,定位那些‘上电就挂’的坑

从.map文件到启动代码:STM32上电死机全流程诊断指南 当你的STM32开发板在按下电源键后毫无反应,或者刚连接调试器就触发HardFault时,那种挫败感足以让任何嵌入式工程师抓狂。本文将以Keil MDK为武器,带你直击这些"上电即挂&q…...

JMeter 5.6.3实战:MySQL数据库压测从入门到精通(附性能优化技巧)

JMeter 5.6.3实战:MySQL数据库压测从入门到精通(附性能优化技巧) 在当今数据驱动的商业环境中,数据库性能直接影响着用户体验和业务连续性。作为最流行的开源关系型数据库之一,MySQL在各种规模的企业中承担着关键角色。…...