关于spring:SpringBoot工程中Spring-MVC模块的应用

28次阅读

共计 1921 个字符,预计需要花费 5 分钟才能阅读完成。

背景剖析
当我的项目做的越来越来大时, 我的项目中业务就会变得越来越简单, 如果咱们只应用一个对象去解决
所有的业务, 这个对象的复杂度就会更高并且难以保护, 生存中和理论我的项目中对相似问题的解
决计划往往 ” 分而治之 ” 的思维. 来升高业务复杂度, 进步其可维护性. 那当初的问题的是如何分,
依照什么规定去分, 这就须要有肯定的设计, 于是 MVC 设计思维诞生.

MVC 是什么?
1)分层设计思维
2) 一种套路或设计模式
3) 是 Model,View,Controller 单词的缩写
3.1)Model (业务逻辑对象)
3.2)Controller(管制逻辑对象)
3.3)View(显示逻辑对象)

Spring 框架中 Web 模块中的 MVC 设计
Spring 中的 Web 模块基于 MVC 设计思维做了落地实现, 其外围组件有:

1)DispatcherServlet (Spring MVC 中外围控制器 -Controller)
2)RequestMapping (封装的申请映射 ->url 到具体 handler 及办法之间的映射)
3)Handler(申请处理器 -> 负责解决 Controller 获取申请 -> 能够将其了解为 model)
4)ModelAndView (封装了业务数据和视图信息的对象)
5)ViewResolver (负责模板视图解析的对象 ->View)

SpringBoot 工程中 Web MVC 疾速入门实现
1)创立我的项目 module
2)增加我的项目依赖(spring web,thymeleaf)
3) 我的项目构造剖析(static,templates)
4) 我的项目启动剖析(启动运行启动类,检测服务是否启动 ok)
5) 批改我的项目端口,重新启动剖析
6)别离在 static 和 templates 目录中创立 html 页面而后进行拜访测试
6.1) 在 static 目录下间接创立 index.html,启动服务后间接浏览器拜访测试,测试 ok.
6.2)在 templates 目录下创立 default.html, 启动服务后间接浏览器拜访测试,404 异样
6.3) 在我的项目中定义 TemplateController 以及相干办法,在办法外部返回字符串 default(
能够将这个字符串了解为 view 的名字), 而后启动服务,基于办法上定义的申请 url 映射
(@RequestMapping(“/doTemplateUI”)) 拜访办法,检测测试输入。

templates 目录存储什么文件 (html 模板文件)
templates 目录的 html 页面能够在浏览器间接拜访吗?不能够
static 目录下个别能够放什么资源?(html/css/js/images)
templates 目录和 static 目录下寄存的 html 文件有什么不同吗?
static 目录下的 html 能够间接在浏览器拜访但不能被 spring 中视图解析器进行解析
templates 目录的 html 页面不能够在浏览器间接拜访但能够被 spring 的视图解析器进行解析,
从而为 html 赋予更多的能力 (例如 thymeleaf 表达式, 分支语句,循环语句,…)
thymeleaf 是什么?(是一个以 html 作为模板的模板引擎,此引擎为 html 元素增加
额定属性并进行解析,而后对其进行赋能。springboot 工程中对 thymeleaf 做了默认的反对
与配置)

Bug?
1)404 异样(web 申请资源不存在)
2)TemplateInputException (template may not exists)

5.SpringBoot 工程中 Web MVC 利用配置进阶

1)SpringBoot 工程中 thymeleaf 模板引擎的前后缀配置
2)SpringBoot 工程中页面主动刷新配置(批改页面内容后,不重启服务既可看到更新内容)

1)ModelAndView 是什么? (Spring MVC 模块中默认提供一个封装响应数据的对象)
2)ModelAndView 个别利用在什么场景呢?(响应数据既蕴含 view 又蕴含 model)
3)你是如何了解 JSON 的?(就是一种反对跨端需要的轻量级数据格式而已)
4)SpringBoot 工程中默认是如何将 pojo,map 等相似对象转换为 json 格局字符串的?(借助 jackson)
5)@ReponseBody 注解的作用是什么?(形容 Handler 中的办法, 用于通知底层应该如何对办法的
返回值进行解决, 例如此注解形容的办法, 其返回值必定不是 view, 同时通知底层办法返回值的转换
后果最终要写到响应体, 而后传输到客户端)
6)@RestController 注解的作用的是什么?(形容 Handler 类型, 用于定义此类是一个 Controller
申请解决对象, 同时类中所有办法都默认增加 @ResponseBody 注解)

正文完
 0