Files
skills/java-spec/references/directory.md
T
2026-09-26 16:09:11 +08:00

4.6 KiB
Raw Blame History

通用的目录结构

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            # 分页结果封装
│   │   └── ...
│   │
│   ├── common/                    # 通用对象
│   │   ├── Result.java            # 统一返回结果封装
│   │   ├── PageResult.java        # 分页返回封装
│   │   ├── BaseEntity.java        # 实体基类(id、创建时间等)
│   │   └── ...
│   │
│   ├── enums/                     # 枚举类
│   │   ├── ResultCodeEnum.java    # 统一返回码
│   │   ├── OrderStatusEnum.java   # 业务状态枚举
│   │   └── ...
│   │
│   └── constants/                 # 常量类
│       ├── StatusCode.java
│       ├── RedisKeyConstant.java
│       └── ...
│
├── config/                        # 配置类
│   ├── DataSourceConfig.java
│   ├── WebMvcConfig.java          # SpringMVC 配置(拦截器注册、跨域、消息转换器等)
│   ├── MyBatisConfig.java         # MyBatis 配置
│   ├── SwaggerConfig.java         # 接口文档配置
│   └── ...
│
├── interceptor/                   # 拦截器(HandlerInterceptor)
│   ├── LoginInterceptor.java      # 登录校验拦截器
│   ├── AuthInterceptor.java       # 权限校验拦截器
│   └── ...
│
├── aop/                           # 切面编程(Aspect)
│   ├── LogAspect.java             # 操作日志切面
│   ├── TransactionAspect.java     # 事务切面(可选,通常用 @Transactional)
│   └── ...
│
├── handler/                       # 处理器(全局处理 / 自定义处理器)
│   ├── GlobalExceptionHandler.java# 全局异常处理(@RestControllerAdvice)
│   ├── MyMetaObjectHandler.java   # MyBatis-Plus 字段自动填充
│   └── ...
│
├── event/                         # 事件驱动(Spring Event)
│   ├── UserRegisterEvent.java     # 事件定义
│   ├── UserRegisterListener.java  # 事件监听器
│   └── ...
│
├── filter/                        # 过滤器(Servlet Filter)
│   ├── CorsFilter.java            # 跨域过滤器
│   ├── RequestLogFilter.java      # 请求日志过滤器
│   └── ...
│
├── validator/                     # 校验相关
│   ├── group/                     # 校验分组(如 Insert、Update)
│   │   ├── InsertGroup.java
│   │   └── UpdateGroup.java
│   ├── custom/                    # 自定义校验注解 + 校验器
│   │   ├── Phone.java             # 自定义注解
│   │   ├── PhoneValidator.java    # 对应 ConstraintValidator 实现
│   │   └── ...
│   └── ...
│
├── annotation/                    # 自定义注解
│   ├── Log.java                   # 日志注解
│   ├── RateLimit.java             # 限流注解
│   └── ...
│
├── converter/                     # 对象转换器
│   ├── UserConverter.java
│   └── ...
│
├── exception/                     # 自定义异常
│   ├── BusinessException.java     # 业务异常
│   ├── ErrorCode.java             # 错误码接口
│   └── ...
│
├── utils/                         # 工具类
│   ├── DateUtil.java
│   ├── ResultUtil.java            # 统一返回结果工具
│   └── ...
│
└── Application.java               # 启动类