4.6 KiB
4.6 KiB
通用的目录结构
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 # 启动类