Skip to content

三层架构

一、三层架构概述

概念:当有大量的对数据的逻辑处理时,会发现代码会有大量的重复性,且非常的繁琐,这时可以使用三层架构去将代码进行拆分成三个架构(Controller(控制器)、Service(服务)、Dao(数据访问)

软件设计原则:高内聚底耦合,内聚就是软件中各个功能模块内部的功能联系,耦合就是衡量软件中各个 层 / 模块 之间的依赖、关联的程度。

SpringBoot的三层架构可以有效的避免耦合,而提高内聚

层级职责说明关键技术/注解
Controller(控制器)1. 接收前端请求(HTTP) 2. 封装参数、校验 3. 调用 Service 处理业务 4. 返回视图 / 数据给前端@Controller、@GetMapping等
Service(业务层)1. 封装复杂业务逻辑 2. 协调 Mapper 完成数据库操作 3. 事务管理、权限校验等@Service、@Transactional
Dao(Data Access Object)(数据访问(持久)层)直接操作数据库(增删改查)(SQL 执行) 2. 封装 CRUD 操作 3. 结果映射为 Java 对象@Mapper、XML 映射

image-20250908185857584

二、在Java开发中POJO对象意义

2.1、dto

数据传输对象,DTO 用于不同层之间传输数据。它通常用于将业务逻辑层(Service层)的数据传输给表示层或持久层。DTO 对象通常包含业务领域的数据,但不包含业务逻辑。

2.2、dao

数据访问对象,DAO 用于封装数据访问逻辑,它负责与数据库进行交互,执行 CRUD(创建、读取、更新、删除)操作。DAO 对象通常封装了数据库访问的细节,使业务逻辑层能够更加简洁地操作数据。

2.3、vo

值对象,VO 也是用于数据传输的对象,类似于 DTO,但 VO 通常更加专注于视图层的数据展示。VO 对象通常包含了在前端页面展示所需的数据。屏蔽掉密码、创建时间、状态等敏感信息

2.4、bo

业务对象层,BO 用于封装业务逻辑,它通常包含了一系列的业务方法,用于实现业务规则和业务流程。BO 对象通常会调用 DAO 对象来实现数据的持久化和访问。

2.5、do

领域对象,通常用于表示业务领域中的实体或业务对象。DO 对象通常包含了业务逻辑和数据,是业务逻辑的实体表示。在某些情况下,DO 对象可能与 PO 对象相似,但它们的用途和含义不同。DO 对象通常用于表示业务领域中的复杂业务逻辑和业务实体。

2.6、po

持久对象,通常用于表示与数据库中的表(或文档)相映射的Java对象。PO 对象的属性对应数据库表的字段,每个 PO 对象通常表示数据库中的一条记录。PO对象通常用于 ORM(对象关系映射)框架中,如 Hibernate、MyBatis 等。