# 目录结构说明 一个标准的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`
`@RequestMapping`
`@Validated` | `UserController.java` | | **service** | 业务逻辑处理,事务管理,调用Mapper层,组装数据 | `@Service`
`@Transactional` | `UserService.java`(接口)
`UserServiceImpl.java`(实现) | | **mapper** | 数据库CRUD操作,SQL映射,与数据库交互 | `@Mapper`
`@Repository`| `UserMapper.java` | | **domain/entity** | 数据库表映射实体,与表结构一一对应 | `@TableName`(MyBatis-Plus)| `User.java` | | **domain/dto** | 接口输入参数对象,用于接收前端请求数据,可添加校验注解 | `@Data`
`@NotBlank`/`@NotNull`等校验注解 | `ProductQueryDTO.java` | | **domain/vo** | 接口输出结果对象,用于返回前端展示数据,过滤敏感字段 | `@Data`
无业务注解 |`ProductVO.java` | | **config** | 配置类 | `@Configuration`
`@Bean` | `DataSourceConfig.java`| | **utils** | 通用工具类,提供各种辅助方法 | 无注解 | `DateUtil.java` | | **constants** | 常量定义,统一管理常量值 | 无注解 | `Constants.java` | | **enums** | 枚举类型定义,管理固定状态码、类型等 | `@Enum` |`ResultCodeEnum.java` | | **Application** | 项目启动类,Spring Boot应用入口 | `@SpringBootApplication`
`@MapperScan` | `Application.java` | ## 各层调用关系图 ```mermaid flowchart LR subgraph 调用链 Controller -->|依赖调用| Service Service -->|依赖调用| Mapper Mapper -->|依赖调用| Database end subgraph 数据对象 DTO[DTO
输入参数] VO[VO
输出结果] Entity[Entity
实体对象] end Controller -.->|接收| DTO Controller -.->|返回| VO Service -.->|转换| Entity Mapper -.->|操作| Entity ```