Files
skills/mis-spec/references/mvc_dir.md
T
V-LiuShuang 1015094a7c add
2026-09-07 17:39:13 +08:00

3.7 KiB
Raw Blame History

目录结构说明

一个标准的MVC三层目录结构示例:

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 数据库表映射实体,与表结构一一对应 @TableNameMyBatis-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

各层调用关系图

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