菜单

技术栈

相关源文件

本文档全面概述了 mall 电商系统使用的技术、框架、库和工具。它涵盖了后端和前端技术,以及开发环境和基础设施组件。有关整体系统架构的信息,请参阅 系统架构

1. 后端技术栈

mall 电商系统后端基于现代 Java 技术栈,以 Spring Boot 为基础。以下是系统中使用的后端技术的详细 breakdown。

1.1 核心框架

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

1.2 数据存储与缓存

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

1.3 安全与认证

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

1.4 工具库与工具

库/工具版本目的
Swagger UI3.0.0API 文档生成
PageHelper5.3.2MyBatis 分页插件
Hutool5.8.9Java 工具库
Logstash7.17.3日志收集
Kibana7.17.3日志可视化

来源:pom.xml138-153 pom.xml113-124 pom.xml132-136 pom.xml191-195

2. 前端技术栈

mall 系统包含多个前端应用,这些应用使用现代 JavaScript 框架和库构建。

2.1 后台前端 (mall-admin-web)

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:页面跳转时的进度条指示器。

来源:README.md96-104

2.2 客户前端 (mall-app-web)

Vue.js:核心前端框架。

Vuex:Vue.js 应用的状态管理。

uni-app:使用 Vue.js 的跨平台框架。

mix-mall:uni-app 的电商项目模板。

luch-request:uni-app 的 HTTP 请求库。

来源:README.md108-114

3. 模块结构

mall 系统采用模块化架构,将代码库组织成具有清晰职责的逻辑组件。

3.1 核心模块

mall-common:包含其他模块使用的实用类、通用配置和共享组件。包括基础实体类、API 结果包装器和通用异常。

mall-mbg:包含 MyBatis Generator 生成的数据库实体类和映射器。为所有应用程序模块提供数据访问层。

mall-security:封装了安全性相关的功能,如身份验证、授权和 JWT 令牌处理。

3.2 应用模块

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

4. 开发和部署环境

4.1 开发工具

工具目的
IDEA/EclipseJava IDE
Maven项目管理和构建工具
Git版本控制
PostmanAPI测试
MySQL Workbench/Navicat数据库管理
Redis Desktop ManagerRedis 客户端
Robo 3TMongoDB 客户端

来源:README.md148-164

4.2 开发环境要求

软件版本
JDK1.8
MySQL5.7
Redis7.0
MongoDB5.0
RabbitMQ3.10.5
Nginx1.22
Elasticsearch7.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

4.3 部署选项

Windows 环境:本地开发环境,手动安装各组件。

Docker 容器:每个应用程序和基础设施组件都在独立的 Docker 容器中运行。

Docker Compose:使用单一配置文件编排多容器部署。

Jenkins CI/CD:自动化的构建、测试和部署流水线。

来源:README.md180-195 document/reference/docker.md3-44 document/reference/docker.md71-88 pom.xml208-255

5. 集成点

5.1 支付集成

系统通过支付宝 SDK (v4.38.61.ALL) 集成支付宝进行支付处理。

支付宝集成配置参数

  • 网关 URL
  • 应用 ID
  • 公钥/私钥
  • 返回和通知 URL

来源:mall-portal/src/main/resources/application-dev.yml45-51 mall-portal/pom.xml44-49

5.2 对象存储

系统支持两种对象存储选项

  1. 阿里云 OSS:基于云的对象存储服务,具有以下配置参数

    • 端点
    • Access Key ID/Secret
    • 存储桶名称
    • 策略设置
    • 上传大小限制
  2. MinIO:自托管对象存储服务,可与应用程序一起部署。

来源:mall-admin/src/main/resources/application.yml53-64 mall-admin/pom.xml28-35

6. 技术依赖关系图

此图显示了系统中各种技术和组件之间的交互方式。

来源:README.md120-124 README.md116-124 pom.xml22-56

7. 版本兼容性矩阵

组件版本兼容
Spring Boot2.7.5JDK 8+
MySQL5.7MySQL Connector 8.0.29
Elasticsearch7.17.3Logstash 7.17.3, Kibana 7.17.3
Docker Maven Plugin0.40.2Maven 3.5+

来源: pom.xml25-27 pom.xml32-36 pom.xml45-46 README.md176-178 pom.xml35