本文档全面概述了 mall 电商系统使用的技术、框架、库和工具。它涵盖了后端和前端技术,以及开发环境和基础设施组件。有关整体系统架构的信息,请参阅 系统架构。
mall 电商系统后端基于现代 Java 技术栈,以 Spring Boot 为基础。以下是系统中使用的后端技术的详细 breakdown。
Spring Boot (v2.7.5):简化 Spring 应用启动和开发的框架。
Spring Security:用于保护应用程序端点的身份验证和授权框架。
MyBatis (v3.5.10):用于将 SQL 查询映射到 Java 对象的 ORM 框架。
MyBatis Generator (v1.4.1):基于数据库 schema 自动生成数据层代码的工具。
来源:pom.xml22-27 pom.xml67-81 pom.xml160-165 pom.xml155-159
MySQL (v5.7):用于存储结构化数据的主关系数据库。
MongoDB (v5.0):用于存储基于文档的数据(如购物车项)的 NoSQL 数据库。
Elasticsearch (v7.17.3):用于产品搜索功能的搜索引擎。
Redis (v7.0):用于缓存和会话管理,内存数据结构存储。
RabbitMQ (v3.10.5):用于实现异步处理的消息代理,尤其用于订单操作。
MinIO (v8.4.5)/Aliyun OSS (v2.5.0):用于存储文件(如产品图片)的对象存储服务。
Druid (v1.2.14):高性能 JDBC 连接池。
来源:README.md166-172 pom.xml126-130 pom.xml166-171 mall-portal/pom.xml29-33 mall-portal/pom.xml34-38 mall-portal/pom.xml39-43 pom.xml196-201 pom.xml184-189
JWT (v0.9.1):用于无状态身份验证的 JSON Web Token 实现。
Spring Security:用于通过各种身份验证机制保护应用程序端点的框架。
自定义安全模块:一个专用模块(mall-security),封装了整个应用程序的安全逻辑。
来源:pom.xml179-183 mall-admin/src/main/resources/application.yml15-23 mall-portal/src/main/resources/application.yml15-19 mall-security/pom.xml
| 库/工具 | 版本 | 目的 |
|---|---|---|
| Swagger UI | 3.0.0 | API 文档生成 |
| PageHelper | 5.3.2 | MyBatis 分页插件 |
| Hutool | 5.8.9 | Java 工具库 |
| Logstash | 7.17.3 | 日志收集 |
| Kibana | 7.17.3 | 日志可视化 |
来源:pom.xml138-153 pom.xml113-124 pom.xml132-136 pom.xml191-195
mall 系统包含多个前端应用,这些应用使用现代 JavaScript 框架和库构建。
Vue.js:用于构建用户界面的渐进式 JavaScript 框架。
Vue Router:Vue.js 的官方路由。
Vuex:Vue.js 应用的状态管理模式和库。
Element UI:Vue.js 的 UI 组件库。
Axios:用于发起 API 请求的基于 Promise 的 HTTP 客户端。
v-charts:基于 ECharts 的图表库,用于数据可视化。
js-cookie:Cookie 处理库。
nprogress:页面跳转时的进度条指示器。
Vue.js:核心前端框架。
Vuex:Vue.js 应用的状态管理。
uni-app:使用 Vue.js 的跨平台框架。
mix-mall:uni-app 的电商项目模板。
luch-request:uni-app 的 HTTP 请求库。
mall 系统采用模块化架构,将代码库组织成具有清晰职责的逻辑组件。
mall-common:包含其他模块使用的实用类、通用配置和共享组件。包括基础实体类、API 结果包装器和通用异常。
mall-mbg:包含 MyBatis Generator 生成的数据库实体类和映射器。为所有应用程序模块提供数据访问层。
mall-security:封装了安全性相关的功能,如身份验证、授权和 JWT 令牌处理。
mall-admin:实现后台管理面板的后端 API,包括产品、订单和用户管理。
mall-portal:实现面向客户的 API,包括产品浏览、购物车和订单处理。
mall-search:提供基于 Elasticsearch 的产品搜索功能。
mall-demo:包含示例代码和测试实现。
来源:README.md52-62 pom.xml12-20 mall-admin/pom.xml19-27 mall-portal/pom.xml20-49 mall-search/pom.xml20-34 mall-common/pom.xml21-50
| 工具 | 目的 |
|---|---|
| IDEA/Eclipse | Java IDE |
| Maven | 项目管理和构建工具 |
| Git | 版本控制 |
| Postman | API测试 |
| MySQL Workbench/Navicat | 数据库管理 |
| Redis Desktop Manager | Redis 客户端 |
| Robo 3T | MongoDB 客户端 |
| 软件 | 版本 |
|---|---|
| JDK | 1.8 |
| MySQL | 5.7 |
| Redis | 7.0 |
| MongoDB | 5.0 |
| RabbitMQ | 3.10.5 |
| Nginx | 1.22 |
| Elasticsearch | 7.17.3 |
来源:README.md168-178 document/reference/deploy-windows.md18-29 document/reference/deploy-windows.md30-41 document/reference/deploy-windows.md43-62 document/reference/deploy-windows.md64-82
Windows 环境:本地开发环境,手动安装各组件。
Docker 容器:每个应用程序和基础设施组件都在独立的 Docker 容器中运行。
Docker Compose:使用单一配置文件编排多容器部署。
Jenkins CI/CD:自动化的构建、测试和部署流水线。
来源:README.md180-195 document/reference/docker.md3-44 document/reference/docker.md71-88 pom.xml208-255
系统通过支付宝 SDK (v4.38.61.ALL) 集成支付宝进行支付处理。
支付宝集成配置参数
来源:mall-portal/src/main/resources/application-dev.yml45-51 mall-portal/pom.xml44-49
系统支持两种对象存储选项
阿里云 OSS:基于云的对象存储服务,具有以下配置参数
MinIO:自托管对象存储服务,可与应用程序一起部署。
来源:mall-admin/src/main/resources/application.yml53-64 mall-admin/pom.xml28-35
此图显示了系统中各种技术和组件之间的交互方式。
来源:README.md120-124 README.md116-124 pom.xml22-56
| 组件 | 版本 | 兼容 |
|---|---|---|
| Spring Boot | 2.7.5 | JDK 8+ |
| MySQL | 5.7 | MySQL Connector 8.0.29 |
| Elasticsearch | 7.17.3 | Logstash 7.17.3, Kibana 7.17.3 |
| Docker Maven Plugin | 0.40.2 | Maven 3.5+ |
来源: pom.xml25-27 pom.xml32-36 pom.xml45-46 README.md176-178 pom.xml35