Files
V-LiuShuang 1015094a7c add
2026-09-07 17:39:13 +08:00

92 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 目录结构说明
一个标准的MVC三层目录结构示例:
```text
com/example/project/
├── controller/ # 控制器层(接收请求)
│ ├── UserController.java
│ └── ...
├── service/ # 业务逻辑层
│ ├── UserService.java # 接口
│ ├── impl/ # 实现类
│ │ └── UserServiceImpl.java
│ └── ...
├── mapper/ # 数据访问层(MyBatis Mapper
│ ├── ProductMapper.java
│ └── ...
├── domain/ # 领域层(聚合所有数据对象)
│ ├── entity/ # 实体类(与数据库表对应)
│ │ ├── Product.java
│ │ └── ...
│ │
│ ├── dto/ # 数据传输对象(输入参数)
│ │ ├── ProductQueryDTO.java
│ │ └── ...
│ │
│ └── vo/ # 视图对象(输出结果)
│ ├── UserVO.java
│ ├── ProductVO.java
│ ├── PageVO.java # 分页结果封装
│ └── ...
├── config/ # 配置类
│ ├── DataSourceConfig.java
│ └── ...
├── utils/ # 工具类
│ ├── DateUtil.java
│ └── ...
├── constants/ # 常量类
│ ├── StatusCode.java
│ └── ...
├── enums/ # 枚举类
│ ├── ResultCodeEnum.java
│ └── ...
└── Application.java # 启动类
```
## MVC各层职责说明
| 包名 | 职责 | 关键注解 | 典型类名示例 |
|------|------|----------|-------------|
| **controller** | 接收HTTP请求,参数校验,调用Service层,返回VO给前端 | `@RestController`<br>`@RequestMapping`<br>`@Validated` | `UserController.java` |
| **service** | 业务逻辑处理,事务管理,调用Mapper层,组装数据 | `@Service`<br>`@Transactional` | `UserService.java`(接口)<br>`UserServiceImpl.java`(实现) |
| **mapper** | 数据库CRUD操作,SQL映射,与数据库交互 | `@Mapper`<br>`@Repository`| `UserMapper.java` |
| **domain/entity** | 数据库表映射实体,与表结构一一对应 | `@TableName`MyBatis-Plus| `User.java` |
| **domain/dto** | 接口输入参数对象,用于接收前端请求数据,可添加校验注解 | `@Data`<br>`@NotBlank`/`@NotNull`等校验注解 | `ProductQueryDTO.java` |
| **domain/vo** | 接口输出结果对象,用于返回前端展示数据,过滤敏感字段 | `@Data`<br>无业务注解 |`ProductVO.java` |
| **config** | 配置类 | `@Configuration`<br>`@Bean` | `DataSourceConfig.java`|
| **utils** | 通用工具类,提供各种辅助方法 | 无注解 | `DateUtil.java` |
| **constants** | 常量定义,统一管理常量值 | 无注解 | `Constants.java` |
| **enums** | 枚举类型定义,管理固定状态码、类型等 | `@Enum` |`ResultCodeEnum.java` |
| **Application** | 项目启动类,Spring Boot应用入口 | `@SpringBootApplication`<br>`@MapperScan` | `Application.java` |
## 各层调用关系图
```mermaid
flowchart LR
subgraph 调用链
Controller -->|依赖调用| Service
Service -->|依赖调用| Mapper
Mapper -->|依赖调用| Database
end
subgraph 数据对象
DTO[DTO<br/>输入参数]
VO[VO<br/>输出结果]
Entity[Entity<br/>实体对象]
end
Controller -.->|接收| DTO
Controller -.->|返回| VO
Service -.->|转换| Entity
Mapper -.->|操作| Entity
```