【Java八股-第十四期】SpringMVC - Spring

提纲:

🔥SpringMVC

  • 概念

  • 工作流程

  • 常用注释

🎈面试八股真题

  • 1、说说你对Spring MVC的理解

  • 2、SpringMVC常用的注解有哪些?

一、SpringMVC

1. 概念

  • 轻量级的 web 框架,实现了 MVC 设计模式,通过将 Model,View,Controller 三者解耦,将 web 开发划分成逻辑清晰的几部分,方便协同开发,提高效率

2.工作流程

  • DispatcherServlet 初始化

    • 1、调用 DispatcherServlet.init() 方法,执行 Spring web 容器的初始化方法

    • 2、初始化过程中,主要为 DispatcherServlet 加载组件

      • ①HandlerMappings:将请求资源的虚拟路径作为 Key,具体的 Controller 和方法打包为 HandlerMethod对象作为 Value,存储在 HandlerMappings 映射中

      • ②HandlerAdaptors:处理器适配器,用于调用 HandlerMethod 方法

      • ③HandlerExceptionResolvers:异常处理器,用于捕获并处理执行 HandlerMethod 时抛出的异常

      • ④ViewResolvers:视图解析器,将 ModelAndView 解析为视图并返回

      • ⑤MultipartFileResolvers:用于解析 Excel,PDF 等 MultipartFile 文件对象

    • 3、请求到达DispatcherServlet,根据请求资源的虚拟路径,从 HandlerMappings 中找到对应的方法,并且与对应的拦截器 Interceptors 形成执行链 Execute Chain

    • 4、首先调用 Execute Chain 中拦截器的 preHandler() 方法,顺序按 Order 从小到大

    • 5、使用 HandlerAdaptor 调用 Controller 中的方法

    • 6、若第五步没有发生异常,执行 postHandler() 方法,并将 ModelAndView 对象交给 ViewResolver 进行解析,并将视图返回给客户端

    • 7、若发生异常,调用 HandlerResolver 进行异常处理

    • 8、不论是否发生异常,都会执行拦截器链的 AfterCompletion() 方法

3.常用注解

  • @RestController:相当于 @Controller + @ResponseBody

  • @RequestMapping:用于标识 Controller 或方法对应的资源虚拟路径

  • @CrossRegion:实现了 W3C 标准的 CORS 跨域问题解决方案,即让服务器和浏览器通过 HTTP 头部信息进行沟通,自行决定请求是否成功,从而解决默认的同源策略问题

  • @PathVariable:用于获取 URL 中的参数

  • @RequestBody:用于获取请求体

二、面试八股真题🎈🎈🎈

1、说说你对Spring MVC的理解

  • 什么是MVC模式

    • MVC:MVC是一种设计模式

    • MVC的原理图:

  • 分析:

    • M-Model 模型(完成业务逻辑:有javaBean构成,service+dao+entity)

    • V-View 视图(做界面的展示 jsp,html……)

    • C-Controller 控制器(接收请求—>调用模型—>根据结果派发页面)

    • springMVC是一个MVC的开源框架,springMVC=struts2+spring,springMVC就相当于是Struts2加上sring的整合,但是这里有一个疑惑就是,springMVC和spring是什么样的关系呢?这个在百度百科上有一个很好的解释:意思是说,springMVC是spring的一个后续产品,其实就是spring在原有基础上,又提供了web应用的MVC模块,可以简单的把springMVC理解为是spring的一个模块(类似AOP,IOC这样的模块),网络上经常会说springM

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

代码鹿のJAVA八股面试题总结 文章被收录于专栏

【📫专栏目录在最底部📫】 - 本专栏适合于JAVA已经入门的学生或人士,有一定的编程基础。 - 本专栏特点: 本专刊囊括了JAVA、Spring、计算机网路、操作系统、计算机网络、MySQL、算法与数据结构、中间件等一系列知识点,总结出了高频面试考点(附有答案),事半功倍,为大家春秋招助力。 - 本专栏内容分为五章

全部评论

相关推荐

冰皮月饼_FLORRIEEE:你是准备投产品嘛?可以重新整理一下实习的bulletpoint,侧重描述你的工作所带来的结果收益,不要只写泛泛的内容(比如改写通过xx数据分析,提升xx),产品的价值并不在处理和分析数据的过程
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务