一、概述core是我的后端系统的核心业务层这次就对我的后端core层的规范做一个总结。包含服务层规范、控制器层规范、实体类规范、配置管理规范、日志规范、安全规范、文件存储以及代码规范二、服务层规范1.接口定义Service接口继承IServiceT2.实现类ServiceImpl继承ServiceImpllMapper, Entity3.事务管理使用Transactionnal(rollbackFor Exeption.class)4.参数校验使用StringUtils.hasText()进行空值检查5.异常处理业务异常抛出BusinessException6.分页查询使用MyBatis Plus的Page和LabdaQueryWrapper7.批量操作使用deleteBatchIds()、updateBatchById()三、控制器层规范1.注解使用RestController RequestMappingSaCheckPermission权限校验Log操作日志记录RepeatSubmit防重复提交2.参数接收PathVariable路径参数RequestParam查询参数支持默认值RequestBody请求体POST/PUT3.返回格式Result.ok()Result.error()4.分页返回使用PageResult.of()封装5.文件操作使用MultipartFile接收文件HttpServletResponse返回文件四、实体类规范1.基础字段继承BaseEntity包含id、createBy、createTime、updateBy、updateTime、deleted2.主键策略TableIdtype IdType.AUTO3.字段填充TableFieldfill FieldFill.INSERT、TableFieldfill FieldFill.INSERT_UPDATE4.逻辑删除TableLogicdeleted字段5.非数据库字段TableFieldexist fasle6.枚举字段使用Integer类型配合字典使用五、配置管理规范1.动态配置通过SyetemConfigHelper从sys_config_group表读取2.配置分组使用GROUP_*常量定义分组编码(system、login、storage、security等等)3.配置项访问提供类型安全的getter方法getString、getInt、getBoolean、getLong4.配置校验在使用前精选有效性检查提供默认值六、日志规范1.操作日志使用Log注解标记需要记录的方法2.登录日志通过LoginHelper.recordFailLog()和SysLogService.recordLog()记录3.API访问日志通过ApiAcccessCollectInterceptor自动采集4.日志级别info正常业务流程记录warn警告信息如配置缺失、降级处理error错误信息如堆栈异常debug调试信息如SQL执行、缓存加载七、安全规范1.密码加密使用BCrypt加密存储2.Token管理使用Sa-Token支持动态配置过期时间、单点登录3.权限控制使用SaCheckPermission注解4.验证码支持图片、滑块、短信等多种验证码类型5.重试机制登录失败重试次数限制账号锁定机制6.数据权限通过DataScope注解实现数据范围过滤八、文件存储规范1.存储类型支持Local、MinIO、Aliyun OSS、Tencent COS、RustFS2.文件路径按日期组织yyyy/MM/dd3.文件名使用UUID生成避免重复4.文件校验校验文件大小和类型通过SystemConfigHelper5.文件记录上传后保存到sys_file表记录原始文件名、存储路径、URL等九、代码生成规范1.表导入从数据库自动导入表结构自动识别主键、自增、必填等属性2.类型映射数据库类型自动映射为Java类型int - Integer、bigint - Long、datetime - LocalDateTime3.模板引擎使用Velocity模板引擎4.文件生成支持Entity、Mapper、Service、Service、ServiceImpl、Controller、api.ts、index.vue5.菜单自动创建生成代码时自动创建菜单和按钮权限并授权给超级管理员6.代码同步支持同步数据库表结构变更到代码生成配置