1、什么是 MVC?

MVC是一种设计模式,在这种模式下软件被分为三层,即Model(模型)、View(视图)、Controller(控制器)。Model 代表的是数据,View 代表的是用户界面,Controller 代表的是数据的处理逻辑,它是 Model 和View 这两层的桥梁。将软件分层的好处是,可以将对象之间的耦合度降低,便于代码的维护。

2、DAO层是做什么的?

DAO 是 Data Access Object 的缩写,即数据访问对象,在项目中它通常作为独立的一层,专门用于访问数据库。这一层的具体实现技术有很多,常用的有Spring JDBC、Hibernate、JPA、MyBatis 等,在 Spring 框架下无论采用哪一种技术访问数据库,它的编程模式都是统一的。

3、Spring MVC的执行流程 Spring MVC的拦截器

Spring MVC的执行流程、工作原理以及Spring MVC的拦截器

4、说一说你知道的Spring MVC注解

@RequestMapping:
作用:该注解的作用就是用来处理请求地址映射的,也就是说将其中的处理器方法映射到 url 路径上。
属性:

  • method:是让你指定请求的method的类型,比如常用的有get和post。
  • value:是指请求的实际地址,如果是多个地址就用{}来指定就可以啦。
  • produces:指定返回的内容类型,当request请求头中的Accept类型中包含指定的类型才可以返回的。
  • consumes:指定处理请求的提交内容类型,比如一些json、html、text等的类型。
  • headers:指定request中必须包含那些的headed值时,它才会用该方法处理请求的。
  • params:指定request中一定要有的参数值,它才会使用该方法处理请求。

@RequestParam:
作用:是将请求参数绑定到你的控制器的方法参数上,是Spring MVC中的接收普通参数的注解。
属性:

  • value是请求参数中的名称。
  • required是请求参数是否必须提供参数,它的默认是true,意思是表示必须提供。

@RequestBody:
作用:如果作用在方法上,就表示该方法的返回结果是直接按写入的 Http responsebody中(一般在异步获取数据时使用的注解)。
属性:required,是否必须有请求体。它的默认值是true,在使用该注解时,值得注意的当为true时get的请求方式是报错的,如果你取值为false的话,get的请求是null。
@PathVaribale:
作用:该注解是用于绑定 url 中的占位符,但是注意,Spring 3.0 以后,url 才开始支持占位符的,它是 Spring MVC 支持的 rest 风格 url 的一个重要的标志。