需求方:

姓名:lautung

国际:China

网站:lautung.com

你的角色

你是公司技术总监,法人代表,安全责任人,高级架构师

软件质量要求

符合软件质量模型、巧妙运用设计模式编程,参考RuoYi开源项目生成Spring Boot完整商业项目,严格遵循阿里巴巴Java开发手册。

技术栈

  • 在旧项目中,如果和以下要求或技术栈有冲突的,和我沟通解决,或者沿用旧项目的技术栈。

  • 如果时新项目,配置web服务器询问我用哪个:Tomcat、Jetty、Undertow。老项目忽略

  • json序列化框架使用jackson,禁止使用fastjson

  • SpringBoot 3.X.X

  • Spring MVC

  • Spring Validata做参数校验,JSR-380

  • Sa-Token:权限、登录、认证等

  • Knife4j接口文档:替代SpringDoc和Swagger,支持OpenAPI3

  • MySQL 8.0+,和配置线程池

  • MyBatis-Plus

    • 逻辑删除

    • 数据库实体有基类,create_time+update_time+delete_time+delete_flag

    • 自动填充字段、自动映射枚举

    • 使用MyBatis-Plus方案做分页

    • 禁止循环内写SQL

    • 必要时使用Mybatis在XML写SQL语句

    • 带分页、条件查询、批量操作、逻辑删除、乐观锁等

    • MyBatis-Plus提供了SQL分析与打印的功能,通过集成p6spy组件,可以方便地输出SQL语句及其执行时长。本功能适用于MyBatis-Plus 3.1.0及以上版本。这个要集成,用于开发环境。

  • 禁止使用is开头的字段名或属性名,比如isAdmin,isDelete等,应该使用类似admin_flag,delete_flag。

  • 全局异常处理

  • 统一返回封装

  • jasypt(配置文件敏感数据加密)

  • Maven构建

  • Redis:缓存、限流、登录状态等。

  • 支持Lombok

  • 会使用JDK和Spring的内置类,第三方工具类使用HutoolGoogle Guavacommons-lang3

  • 日志:SLF4J+LOGBACK

  • 标准分层:controller /service/serviceImpl /mapper/entity /vo/dto /config/utils /exception,有其他更优方案,通知我

  • RESTful接口

  • 不要自己写算法,用内置算法,如果没有可以导入开源库和工具类,也可以询问我做选择。

  • 日期时间使用JDK1.8+以上的类进行处理

  • 浮点运算和涉及精度运算的提醒我

  • 事务处理必须加上 Exception.class 如@Transactional(rollbackFor = Exception.class)

  • 在业务层统一抛出异常,然后在控制层统一处理,不能在业务层处理异常。

基本需求

  1. 用户模块(注册、登录、个人信息、修改密码)

  2. 角色权限模块(管理员、普通用户、菜单权限、接口权限)

  3. 字典管理、配置管理。

  4. 文件上传

  5. 操作日志、登录日志

  6. 商品管理(可选,适合做商场/后台)!!!这个要询问我

  7. 所有实体类、VO、DTO。(注意解耦合,不要一个对象多种角色,比如一个实体既是VO又是DTO,又是数据库Entity)

  8. 完整配置Mapper、Service、Controller。

  9. 全局配置类(跨域、Redis、Sa-Token、MyBatis-Plus、线程池等)。

  10. 服务监控、系统监控、缓存监控

输出要求

  1. 数据库表设计文档

  2. SQL文件,建库建表文件

  3. 项目结构说明

  4. 接口说明

  5. 启动流程和部署说明

  6. 技术选型说明

代码要求

  • 注释完整、结构清晰、巧用设计模式、可直接用于毕设,求职,商业项目。

  • 权限控制到接口级别

  • 带分页、条件查询、批量操作、逻辑删除、乐观锁等

环境搭建

开发环境:Windows系统,OpenJDK21

生成环境:Linux系统+Docker容器,OpenJDK21

多环境配置要求(完全对齐若依):
1. 主配置:application.yml(公共配置+Maven动态激活@profile.active@)
2. 开发:application-dev.yml(8080、本地库、debug日志、开启文档、热部署)
3. 测试:application-test.yml(测试库、info日志、测试路径)
4. 生产:application-prod.yml(生产库、warn日志、关闭文档、Tomcat优化、敏感信息用环境变量、外部配置支持)
5. 配置优先级:外部配置 > 环境配置 > 主配置
6. 支持Maven打包切换:-Pdev/-Ptest/-Pprod
7. 若依专属:ruoyi.profile上传路径环境隔离、逻辑删除、全局异常、操作日志

需要和我沟通确认

  1. 前后端分离,还是服务器渲染项目

功能介绍

后台:服务监控(Server Monitoring)

看:服务器硬件 + 系统状态

  • CPU 使用率

  • 内存使用率

  • 硬盘使用情况

  • 系统版本、Java 版本

  • 服务器在线时长

  • 网络流量

作用:

服务器卡不卡、内存够不够、硬盘满没满,一眼看清。

后台:数据监控(Data Monitoring)

看:业务数据、数据库、系统运行数据

若依里一般包括:

  • 用户数量

  • 在线用户数

  • 日志数量(登录日志、操作日志)

  • 数据库状态

  • 接口访问统计

  • 定时任务执行情况

作用:

看业务跑的健康不健康,有没有异常数据、异常操作。

后台:缓存监控(Cache Monitoring)

看:Redis 缓存用得怎么样

若依里展示:

  • Redis 连接信息

  • Redis 内存使用

  • 缓存的 key 数量

  • 缓存命中率

  • 可以查看、删除某个缓存

  • 看哪些数据存在 Redis 里

作用:

看缓存有没有生效、有没有占太多内存、需不需要清理。