目录
一、MVC概述
- Model(模型):表示应用程序的数据和业务逻辑,负责与数据库的交互。
- View(视图):负责用户界面的展示,向用户显示数据。
- Controller(控制器):处理用户的输入,调用相应的模型和视图以完成用户请求。
二、Spring MVC框架
功能一览图
没看懂? 那么就看看下面的详细解析吧
(1)Controller类
- 作用:负责处理用户请求并返回响应。它是应用程序与用户之间的桥梁。
- 功能:
- 接收和解析 HTTP 请求。
- 调用相应的服务层(Service)方法以处理业务逻辑。
- 返回视图或数据(通常是 JSON 格式)给客户端。
示例代码:
@RestController
@RequestMapping("/students")
public class StudentController {
@Autowired
private StudentService studentService;
@GetMapping("/{id}")
public Student getStudent(@PathVariable int id) {
return studentService.findById(id);
}
}
这里调用了Sevice层的findById方法查询信息,将查询的信息(JSON 格式)返回给客户端
(2)Mapper
- 作用:与数据库进行直接交互,负责 SQL 的执行。通常使用 MyBatis 或其他 ORM(如 JPA)框架。
- 功能:
- 定义数据访问的方法。
- 映射 SQL 语句到 Java 方法。
- 返回数据库查询的结果。
@Mapper
public interface StudentMapper {
@Select("SELECT * FROM students WHERE id = #{id}")
Student findById(int id);
}
上述例子中使用sql语句查询学生信息,同时声明数据库处理的接口
(3)Service
- 作用:处理业务逻辑,通常是业务层的接口。
- 功能:
- 定义业务层的接口方法。
- 调用 Mapper 层的方法来执行数据库操作。
- 处理事务和业务规则。
public interface StudentService {
// 调用StudentMapper的方法
Student findByClass(Integer classroom);
}
(4)Model
- 作用:表示业务数据的结构,通常对应数据库中的表。
- 功能:
- 定义数据模型的属性和行为。
- 提供 getter 和 setter 方法。
- 可以包含一些业务逻辑或计算方法。
public class Student {
private int id;
private String name;
private int age;
// 构造函数、getter 和 setter
}
(5)SeviceImpl
- 作用:实现 Service定义 接口,包含具体的业务逻辑实现。
- 功能:
- 实现 Service 接口定义的方法。
- 调用 Mapper 层的方法来进行数据库操作。
- 处理复杂的业务逻辑和事务。
三、总结
- Controller:处理请求和响应,作为用户接口。
- Mapper:负责与数据库交互,执行 SQL。
- Service:定义业务逻辑接口,协调 Controller 和 Mapper。
- Model:表示应用程序的数据结构。
- ServiceImpl:实现 Service 接口,包含具体的业务逻辑。
相信到这样大家应该对MVC和Springboot MVC架构有所了解吧,再让我们回顾一下这张一览图,是不是比刚开始更理解了呢