【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、Spring、计算机网路、操作系统、计算机网络、MySQL、算法与数据结构、中间件等一系列知识点,总结出了高频面试考点(附有答案),事半功倍,为大家春秋招助力。 - 本专栏内容分为五章