在Spring Boot框架中,通常采用MVC(Model-View-Controller)架构,其中Mapper、Service和Controller分别属于不同的层次,各自承担着不同的责任。下面对它们之间的关系进行简要解释:
简要的请求处理流程如下:
用户发起请求,请求到达Controller层。
Controller层解析请求,调用相应的Service层方法。
Service层处理业务逻辑,可能涉及到对数据库的操作,调用Mapper层进行数据访问。
Mapper层执行SQL语句,与数据库交互,将结果返回给Service层。
Service层将处理结果返回给Controller层。
Controller层将结果封装成HTTP响应,返回给用户。
1、Controller(表现层):
Controller层负责接收用户的请求,调用Service层处理业务逻辑,并返回相应的视图或数据。
Controller层通常处理HTTP请求,接收参数,调用Service层方法,并将结果封装为HTTP响应。
控制器层不处理具体的业务逻辑,而是协调各个服务组件完成用户请求的处理。
返回的结果可以是HTML视图、JSON数据等,取决于前端需要的信息。
2、Service(业务逻辑层):
Service层包含应用程序的业务逻辑,处理业务规则和流程。
Service层通过调用Mapper层提供的数据访问接口,完成对数据库的操作。
Service层提供事务管理,确保业务操作的原子性、一致性、隔离性、持久性(ACID原则)。
Service层的方法通常对应着业务功能,通过调用一个或多个Mapper的方法来实现。
3、Mapper(数据访问层)
Mapper层主要负责与数据库的交互,进行数据的持久化操作。通常使用MyBatis或Hibernate等持久层框架,定义数据访问接口和SQL语句。Mapper接口中的方法对应着数据库操作,可以通过注解或XML文件配置SQL语句。Mapper层的主要目标是将数据库中的数据映射到Java对象(实体类)或从Java对象映射到数据库中的数据。
Mapper XML文件: 除了接口,MyBatis 还支持使用 XML 文件来定义 SQL 映射关系。这些 XML 文件包含了 SQL 语句的定义以及与 Java 对象之间的映射规则。