单体项目结构

二、层级调用流程(核心执行顺序)

前端请求 → Controller → DTO 接收参数 → Service 业务层 → Mapper 持久层 → MySQLService 层可调用:Redis 工具、OSS 工具、自定义工具、ThreadLocal 上下文、定时任务

三、每层职责详细说明

  1. controller 控制层只做三件事:接收参数、调用 service、返回统一 Result,禁止写业务逻辑

  2. service 业务层核心业务、事务、多表操作、缓存逻辑、数据组装;所有复杂逻辑放这里

  3. mapper 持久层仅负责数据库操作,不处理业务

  4. entity(PO)与数据库表完全映射,只存字段,不做传输

  5. DTO前端传给后端的参数载体,做参数校验

  6. VO后端返回给前端的数据载体,封装组装后数据,脱敏

  7. config框架配置、拦截器、插件、第三方组件初始化

  8. common全局公共代码:工具、异常、返回体、常量、上下文

四、包分层规范口诀

控制收参,服务写业务,Mapper 操作库;PO 映射表,DTO 收请求,VO 返前端;公共工具放 common,所有配置归 config。

相关推荐
MayZork13 分钟前
Qt 文件操作:QSaveFile 与 QTemporaryFile(含 QTemporaryDir)实战
开发语言·qt
北冥you鱼25 分钟前
Go 语言空接口(interface{})使用场景与最佳实践
开发语言·windows·golang
for_ever_love__28 分钟前
MySQL 全文索引实战:FULLTEXT、ngram 中文分词与 MATCH AGAINST 到底该怎么用
java·python·mysql·全文检索·分词·索引·ngram
java资料站32 分钟前
五、Spring AI Alibaba · Memory · Saver(短期会话)
java·spring·microsoft
xh didida35 分钟前
Linux -- 基础IO
linux·服务器·开发语言·c++
个 人 练 习 生1 小时前
C++ string 类模拟实现:从底层理解字符串(上)
开发语言·c++·经验分享·学习·程序人生
2601_966949651 小时前
多市场量化策略的数据接口应该如何设计:从数据层架构到策略接入
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
坤坤子吖1 小时前
C++智能指针:RAII、shared_ptr与内存泄漏
开发语言·c++·笔记·学习
奋斗的阿狸_19861 小时前
ESP32-S3 + ES7210 四通道麦克风录音上传方案
c语言·开发语言·fpga开发
夜之眷属2 小时前
Core dump 崩溃排查:JVM 宕机后,那份 core 文件怎么用 gdb 还原现场
java·运维·服务器·jvm