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

详细介绍:Spring MVC高频面试清单(含通俗理解+生活案例)

什么?就是一、请说说Spring MVC的核心组件有哪些?各自的作用

核心调度者,其他组件围绕它配合工作;开发者不用手动创建这些组件,Spring会自动管理,只需关注业务相关的Handler(Controller)、数据和视图(前后端分离场景下视图可省略)。就是• 核心回答:Spring MVC有8个核心组件,DispatcherServlet(前置控制器)

• 通俗理解(类比社区超市运作):

◦ DispatcherServlet:相当于超市收银台,所有顾客(客户端)的购物结算请求都先到收银台,收银台再安排货架导购、打包员等(其他组件)配合,是整个流程的“总指挥”。

◦ Handler:相当于货架导购,负责帮顾客找具体商品(处理业务逻辑),比如顾客要“牛奶”,导购就去乳制品货架把牛奶拿给顾客。

◦ HandlerMapping:相当于超市的“商品导购图”,收银台(DispatcherServlet)接到顾客要“牛奶”的需求后,查导购图就知道“牛奶在乳制品区,归李导购负责”(精准映射请求到对应的Handler)。

◦ HandlerInterceptor:相当于超市的“商品质检员”,导购拿商品前(请求处理前)检查牛奶有没有过期,拿给顾客后(请求处理后)确认包装没破损,还能拦截“拿临期商品却不告知”的行为(自定义拦截逻辑,比如登录验证)。

◦ HandlerExecutionChain:相当于“导购+质检员”的组合,顾客找牛奶时,李导购会和对应的质检员一起工作,确保拿的商品又好又合规。

◦ HandlerAdapter:相当于超市的“导购助手”,导购拿牛奶前,助手会帮着核对顾客要的品牌(比如“常温纯牛奶”)、确认保质期(处理表单参数验证、数据类型转换,比如把顾客输入的“2箱”转成数字2),导购只需专注找商品,不用管这些细节。

◦ ModelAndView:相当于“商品+购物袋”,导购把牛奶(Model素材)找好后,会连同适合装牛奶的购物袋(View视图,比如JSP页面)一起交给收银台,告诉收银台“这是顾客要的东西,该用这个袋子装”。

◦ ViewResolver:相当于超市的“购物袋使用指南”,收银台拿到“牛奶+购物袋”后,按指南确认“牛奶要用厚塑料袋装(解析为物理视图,比如把‘milkView’逻辑视图转成‘milk.jsp’页面)”,避免用错袋子。

二、Spring MVC的完整工作流程是怎样的?用生活例子说明

• 核心回答:流程以DispatcherServlet为核心,分7步完成请求处理,从接收请求到响应客户端;实际制作中只需写Handler(Controller)、处理数据(Model)、设计视图(View),其他步骤Spring自动达成。

• 通俗例子(继续用超市购物类比):

1. 顾客(客户端)走进超市,拿着购物清单(请求)走到收银台(DispatcherServlet),说“我要2箱常温纯牛奶”;

2. 收银台查“商品导购图”(HandlerMapping),发现“常温纯牛奶归乳制品区李导购负责”(确定对应的Handler),但不直接喊导购;

3. 收银台告诉“导购助手”(HandlerAdapter):“让李导购给顾客拿2箱常温纯牛奶”(通知适配器去执行Handler);

4. 导购助手先核对“2箱”“常温纯牛奶”的要求(处理参数),再告诉李导购,李导购找到牛奶(Handler处理业务逻辑),把“2箱牛奶(Model数据)+厚塑料袋(View方案)”(ModelAndView)交给助手,助手再层层传回收银台;

5. 收银台按“购物袋使用指南”(ViewResolver),确认“牛奶必须用厚塑料袋装”(将逻辑视图解析为物理视图,比如JSP页面);

6. 收银台把牛奶装进厚塑料袋里(将Model数据填充到View中);

7. 收银台把装好的牛奶递给顾客(响应客户端)。

• 补充思考:现在做前后端分离项目时,顾客不用“购物袋”(不需要View),只需直接拿牛奶(Json数据),流程会更简单,这就是Restful接口的场景。

三、Spring MVC中Restful风格接口的流程是什么?和传统ModelAndView流程有什么区别?

• 核心回答:Restful接口以返回Json数据为目标,依赖@ResponseBody注解,流程和传统模式框架一致,但省略“解析视图”“填充视图”步骤;关键是经过专门组件把业务数据转成Json,直接响应给客户端,适合前后端分离。

• 通俗例子(类比“超市外卖”场景):

1. 顾客(客户端)在手机上下单(发Restful请求),备注“要2箱常温纯牛奶,不用装购物袋,直接装外卖盒送过来”(@ResponseBody的作用,不用View);

2. 超市收银台(DispatcherServlet)接到订单,查“商品导购图”(HandlerMapping),确定“牛奶归李导购负责”(找到对应的Handler/Controller);

3. 收银台告诉“导购助手”(HandlerAdapter):“让李导购按外卖订单准备牛奶”(通知适配器执行Controller);

4. 导购助手把李导购“包装成外卖专属导购”(ServletInvocableHandlerMethod),李导购找到2箱牛奶(Controller处理业务,比如查询用户信息);

5. 超市的“外卖打包员”(HandlerMethodReturnValueHandler)接手处理:

◦ 先拿一个“食品专用外卖盒”(ServletServerHttpResponse,Spring封装的输出流,用来装内容);

◦ 用“打包机器”(HttpMessageConverter,默认用Jackson框架)把牛奶装进外卖盒,装的时候会按“外卖规范”贴标签(将数据转成Json格式,比如把“用户信息”转成{"id":1,"name":"小明"});

6. 打包完成后,没有“找购物袋、装袋”的步骤(ModelAndView为null,不用处理View),直接让外卖员把外卖盒送给顾客(响应Json数据)。

• 核心区别:传统流程像“到店购物”(需要装购物袋、顾客自己拎走,对应要解析View、填充材料);Restful流程像“外卖配送”(不用购物袋,直接装外卖盒送上门,对应不用处理View,只返回Json材料),更适合前端和后端分开研发的场景(比如前端是手机App,后端只给资料)。

http://www.zskr.cn/news/29371.html

相关文章:

  • 2025年质量好的光伏高压直流接触器,高压直流接触器推荐TOP生产厂家
  • 2025年评价高的成都标书,标书咨询
  • 2025年靠谱的黄蜡石鱼池假山制作,龟纹石鱼池假山制作厂家最新TOP推荐榜
  • 2025年热门的文件销毁,广州文件销毁推荐TOP品牌厂家
  • 2025年10月中国房产律所权威盘点:北京金诉领衔十大推荐榜
  • 2025年口碑好的外贸获客,中亚获客推广
  • 2025年评价高的服务器电源,服务器机箱厂家最新TOP推荐榜
  • 2025年杭州品牌策划公司最新推荐榜,聚焦企业服务品质与特色领域竞争力深度剖析
  • Docker、Docker-compose常用命令
  • 2025年知名的富氢水机招商加盟项目,富氢水机招商团队
  • 语音识别:PyAudio、SoundDevice、Vosk、openai-whisper、Argos-Translate、FunASR(Python) - 教程
  • 2025年10月德语培训机构推荐榜:在线小班与线下沉浸全面对比
  • 2025年质量好的工作餐团餐配送,工厂团餐配送推荐及选择建议
  • 2025年质量好的房屋检测鉴定选哪家
  • 2025年成都全日制辅导机构机构综合评估:聚焦企业服务品质与课程体系竞争力深度剖析
  • 大数据毕业设计选题推荐-基于大数据的青光眼数据可视化分析系统-大数据-Spark-Hadoop-Bigdata - 详解
  • nodejs和浏览器中事件循环机制
  • 2025年10月成都自动门厂家排名:五强服务与成本效益对比
  • Shell脚本(.sh)函数语法
  • playwright自动化测试应用-Day2- 【5种元素定位选择器】
  • 神曲
  • 浙江AI快速建站公司口碑榜:聚焦技术革新、服务效率及企业成长力的综合测评
  • 2025年10月烧烤加盟项目推荐:热门排行与实测数据
  • 实用指南:老字号传承,达尔优AE6电竞鼠标!熟悉的味道,时代的配方
  • dnsmasq DNS服务
  • 2025 公考/面试/笔试/辅导/培训机构五星推荐榜:邦荣公考领衔,本土适配与全流程服务助高效备考
  • 2025芝麻白花岗岩/路沿石推荐榜:春辉石材五星领跑,这些厂商凭品质站稳市场
  • OJ测试
  • 都是
  • 快读