先说说什么是MVC
MVC(Model, View, Controller) 是模型(model)-视图(view)-控制器(controller)的缩写.
模型(model): 通俗的讲就是数据建立的模型. 可以看做是一组数据集合.
视图(View): 页面响应的内容.
控制器(Controller): 主要控制视图和模型做最后的处理的一层.
MVC的出现更好的避免原先代码和视图否揉在一起的群魔乱舞的时代.
描述一下这个场景, 当有用户访问我们的URL的时候, 需要做的就是找到该URL对应的Controller方法. 并把Controller方法里面做的处理, 返回给用户.
这里有个关键点, 就是我们怎么找到Controller方法, 并怎么返回给请求的对象. 这个时候, 我们就需要了解一下SpringMVC框架. 其实它和其他的框架大同小异, SpringMVC属于请求驱动. 就是说: 所有的设计都围绕一个中央的Servlet来处理. 它在负责把所有的请求分发到对应的控制器. 相当于找了一个大管家. 你有什么要求, 就向它提. 这个时候, 他就负责给你找对应的控制器. 该控制器的名字叫做: DispatcherServlet. 来自: org.springframework.web.servlet.DispatcherServlet 担任重要职责. 分析代码可以看出来. 该类, 就是一个前端控制器模式.
DispatcherServlet: 看父类王上翻, 发现它其实就是一个Servlet(基类为HTTPServlet). 所以, 如果想要使用它, 你要做的就是配置web.xml 或者是Servlet3.x之后的Java Config 方式配置. 如果不使用SpringBoot 你会看到如下的代码. 或者是与此类似的.
编程的方式(JavaConfig)
那在SpringBoot中, 如何加载的呢? 这里就需要知道一个问题, 就是SpringBoot的所有自动化配置,
该包为: spring-boot-autoconfigure-2.1.0.RELEASE.jar 并以*AutoConfiguration.java命名.
所以找到包: org.springframework.boot.autoconfigure.web.servlet; 找到对应的DispatcherServletAutoConfiguration
具体的加载代码:
SpringBoot中web的依赖, 其实就是SpringMVC, 它并没有新创建什么, 只是在原来的基础上. 做了自动化. 什么是自动化呢? 就是把一系列有规则的动作, 按照规则运行并使用.
Spring Web MVC
其实大家都是叫做SpringMVC, 但是官方文档全程为Spring Web MVC. 就相当于JavaScript 叫做js一样. 接下来我们引用SpringMVC框架.
加入对应的依赖. 这一个依赖就是完成了SpringMVC的依赖. 加入该依赖不需要写一行配置文件, 就可以启动一个Web项目.
这里我们需要引用一个模板引擎. thymeleaf. 也是Spring官方推荐使用的.
从Spring Boot 2.x开始, 已经是基于thymeleaf的3.x版本了. 如下:
我们先看一下我们现在的项目架构图.
目录结构说明:
src/main/java 代表存放的是java源代码
src/main/resources 代表是存放的配置文件, 或者是mybatis, hibernate的xml配置文件
src/test/java 代表存放的是Java的测试代码
src/test/resources 代表存放测试代码的配置文件
默认情况下 src/main/resources 是没有目录和文件的, 这个时候, 我们创建2个目录, 一个叫做 static 一个叫做templates
static: springboot的默认静态资源目录. 可以在配置文件中修改.
templates: springboot的默认模版文件目录. 可以在配置文件中修改.
新调整目录如下:
接下来我们编写页面文件. 在templates 中加入 index.html
编写Controller
这个时候, 我们访问http://localhost:8080 或者 http://localhost:8080/index.html 就可以看到下面的效果.
我们简单的描述一下这个流程. 我们在访问该路径时, 找到对应的Controller: @RequestMapping(value= {