主题
系统架构与模块依赖
来源:docs/dev/context.md, AGENTS.md 适用:理解系统整体技术架构和模块间依赖关系
1. 系统上下文图
展示 Mall 电商系统的完整边界:外部角色、内部模块、外部系统及其交互关系。
mermaid
flowchart TB
subgraph Actors["外部角色"]
Member["会员<br/>C端消费者"]
Admin["管理员<br/>B端运营团队"]
end
subgraph Mall["Mall 电商平台"]
subgraph Frontend["前端层"]
PortalWeb["mall-admin-web<br/>前台商城 :5173<br/>Vue 3 + Element Plus"]
AdminWeb["mall-admin-web<br/>后台管理 :5173<br/>Vue 3 + Element Plus"]
end
subgraph Backend["后端层"]
Portal["mall-portal<br/>前台服务 :8085<br/>Spring Boot 3"]
AdminAPI["mall-admin<br/>后台服务 :8080<br/>Spring Boot 3"]
Search["mall-search<br/>搜索服务<br/>待配置 ES"]
end
subgraph Infra["基础设施"]
MySQL[("MySQL 8.0<br/>73 张表")]
Redis[("Redis<br/>缓存 / 会话")]
MongoDB[("MongoDB<br/>收藏 / 浏览历史")]
ES[("Elasticsearch<br/>商品搜索<br/>待配置")]
end
end
Member -->|"浏览 / 搜索 / 下单"| PortalWeb
Admin -->|"管理 / 运营"| AdminWeb
PortalWeb -->|"/papi, /member"| Portal
AdminWeb -->|"/api"| AdminAPI
Portal --> MySQL
Portal --> Redis
Portal --> MongoDB
AdminAPI --> MySQL
AdminAPI --> Redis
Search --> ES
Portal -.->|"商品数据同步"| Search
说明:
- 前端为单 Vue 项目,通过路由区分前台商城和后台管理两个子系统
- mall-portal 服务前台 C 端接口,mall-admin 服务后台 B 端接口
- MongoDB 仅用于会员商品收藏和浏览历史(非关系型场景)
- mall-search 和 Elasticsearch 待外部服务配置后接入
2. 模块依赖图
展示 6 个后端 Maven 模块的依赖链和前端通信路径。
mermaid
flowchart LR
subgraph Maven["后端 Maven 模块"]
Common["mall-common<br/>工具类 / 通用代码"]
MBG["mall-mbg<br/>DAO 层<br/>73 张表映射"]
Security["mall-security<br/>JWT + 动态权限"]
AdminMod["mall-admin<br/>后台 API :8080"]
PortalMod["mall-portal<br/>前台 API :8085"]
SearchMod["mall-search<br/>ES 搜索<br/>待配置"]
end
subgraph Frontend["前端"]
Web["mall-admin-web<br/>:5173"]
end
Common --> MBG
MBG --> Security
Security --> AdminMod
Security --> PortalMod
Security --> SearchMod
Web -->|"HTTP REST"| AdminMod
Web -->|"HTTP REST"| PortalMod
依赖规则:
mall-common→mall-mbg→mall-security为底层依赖链mall-admin、mall-portal、mall-search为顶层业务模块,互相独立- 前端通过 Vite 代理分别访问后台(
/api)和前台(/papi、/member)接口