用途:为 Spring Boot 单体项目定义统一的开发规范,帮助团队按一致的技术栈与分层方式初始化项目、新增模块。
技术栈配置:JDK 推荐 17/21(Spring Boot 3.x 需 17+);ORM 默认 MyBatis-Plus,追求极致性能可选 Flex;工具库可选 Hutool/Guava;权限快速开发用 Sa-Token,复杂企业级用 Spring Security。
项目结构与数据流:核心分层中 manager 仅在跨模块协调或第三方集成(OSS/短信)时启用,避免直接耦合;common/config 存放 BaseResponse、GlobalExceptionHandler、MybatisPlusConfig 等。DTO 仅用于 Controller 输入,VO 仅用于 Controller 输出,严禁 Entity 直接返回前端;Entity 与数据库表一一对应,仅在 Service/Mapper 层流通。
编码规范:Controller 强制返回 BaseResponse<T>,多参数封装为对象并用 @RequestBody + Validation 校验;业务逻辑收敛于 Service,MP 风格为 extends ServiceImpl<Mapper, Entity> implements Service。Entity/DTO/VO 强制实现 Serializable 并声明 serialVersionUID,Java 17+ 优先用 record 定义 DTO/VO,MP 注解包括 @TableName、@TableId(type = IdType.ASSIGN_ID)、@TableLogic。
统一响应与异常:ResultUtils 提供 success(data)、error(errorCode, msg);业务错误须抛 BusinessException,由 GlobalExceptionHandler 统一捕获;ErrorCode 维护全局状态码(如 40000 参数错误、40100 未登录)。
访问控制与工具:Sa-Token 用拦截器校验 StpUtil.checkLogin() 或 @SaCheckRole,Spring Security 用 SecurityFilterChain 配置及 @PreAuthorize;Hutool 常用 StrUtil.isBlank、BeanUtil.copyProperties、JSONUtil.toJsonStr、SecureUtil.md5。
命名规范:Controller 为 XxxController,Service 为 XxxService/Impl,DTO 为 XxxAdd/Update/QueryRequest,VO 为 XxxVO,DAO 为 XxxMapper。
执行工作流:初始化时确认 company、project、jdk 等变量,生成目录树与 pom.xml、application.yml,注入 common、exception、utils、config 基础类;新增模块按 Entity→Mapper→Service 建模,再定义 Request/VO(Record)与 Controller 逻辑,并补充 Swagger 注解。
禁止事项:Controller 编写业务逻辑、Entity 越过 Service 暴露给 Controller、未经统一异常处理直接抛出原始 Exception、硬编码角色或权限字符串。代码模板参考 references/code-templates.md,含 BaseResponse、ErrorCode、BusinessException、GlobalExceptionHandler、ResultUtils、ThrowUtils、MybatisPlusConfig、JsonConfig、OpenApiConfig。