Mall4j 商城
1 硬件 & 软件环境
测试环境最低配置(单机 Jar)
- CPU:2 核
- 内存:4G
- SSD 硬盘 ≥ 50G
- 操作系统:CentOS7.9 / Ubuntu20.04
生产环境推荐
- CPU ≥4 核,内存 ≥8G;多实例集群部署,Nginx 负载均衡
- MySQL 主从备份,Redis 可单机 / 集群
软件版本清单
- JDK17(SpringBoot4 推荐 JDK17+)
- MySQL8.0
- Redis 6.x+
- Maven3.6+(源码打包)
- Node.js 16+(前端打包)
- Nginx 1.20+
2 服务器初始化操作(Linux)
# 测试环境关闭防火墙(生产不要关闭,按需放行端口)
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
yum update -y
3 分步安装中间件
Step1 安装 MySQL8.0
- 安装 MySQL,配置 my.cnf,调整 sql_mode
CREATE DATABASE mall4j DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- 创建数据库账号,授权访问
- 导入初始化 SQL 脚本(项目 doc/sql 目录)
mysql -u root -p mall4j < mall4j_init.sql
Step2 安装 Redis
yum install redis -y
systemctl start redis
systemctl enable redis
修改 redis.conf,设置密码,开启持久化 RDB/AOF
Step3 安装 JDK17
yum install java-17-openjdk-devel -y
java -version
4 后端源码打包 & Jar 部署
Step1 拉取源码
git clone https://gitee.com/gz-yami/mall4j.git
cd mall4j
Step2 Maven 打包
mvn clean package -DskipTests
打包完成后,target 目录生成可执行 jar 包 mall4j.jar
Step3 上传 Jar 包到服务器
新建目录
mkdir -p /usr/local/mall4j/logs
上传 jar 包,修改配置文件 application.yml
重点修改:
- MySQL 地址、账号密码
- Redis 连接地址、密码
- 文件上传路径
- 端口(默认 8080)
- 支付密钥、OSS/MinIO 配置
Step4 启动服务
nohup java -jar mall4j.jar > /usr/local/mall4j/logs/mall4j.log 2>&1 &
生产环境推荐使用 systemd 托管,服务崩溃自动重启
Step5 验证后端启动
ps -ef | grep java
查看日志,无报错即为成功,访问接口文档:http://IP:8080/doc.html
5 前端打包部署
- 管理后台 Vue 前端
# 进入web-admin目录
npm install
npm run build
输出 dist 静态资源,上传服务器 /usr/local/mall4j/web-admin
2. Uni-app 移动端(H5 / 小程序)
HBuilderX 打开 uni-app 项目,打包 H5;微信小程序直接编译上传微信后台。
3. Nginx 配置
Nginx 托管前端静态页面,反向代理/api转发到后端 8080 端口。
6 系统网页初始化(后台操作)
- 使用默认管理员账号登录商城后台,修改初始密码
- 初始化顺序:
① 基础参数、商城名称、联系方式
② 商品分类、品牌
③ 运费模板配置
④ 支付配置(微信、支付宝密钥)
⑤ 文件存储配置(OSS/MinIO)
⑥ 营销基础参数 - 新增商品、设置 SKU 库存,发布商品
- C 端 H5 / 小程序访问,测试加购、下单、支付流程
7 对接 Y-OMS-WMS-TMS 履约中台
业务完整链路:
C 端用户 Mall4j 下单 → Mall4j 订单服务调用 API 推送订单到 Y-OMS → OMS 库存校验、分仓策略 → 下发 WMS 做入库拣货复核打包 → WMS 出库推送 TMS 生成运单 → TMS 承运商调度、物流轨迹回写 Mall4j 前台。
对接要点:
- Mall4j 新增订单事件 Webhook,实时推送订单数据给 OMS;
- Mall4j 关闭原生发货流程,发货状态由履约中台回调更新;
- 库存双向同步:WMS 真实库存定时回写到 Mall4j 商品 SKU;
- 售后退货事件同步,退货入库状态回传商城。
8 运维 & 备份方案
- MySQL:每日定时全量备份,开启 binlog,保留 7~30 天备份;
- Redis 开启持久化,防止缓存丢失;
- 日志切割,避免磁盘占满;
- 监控:服务器 CPU、内存、Java 进程;
- 发布流程:测试环境验证 → 数据库备份 → 生产发布;
- 安全:禁止公网暴露数据库、Redis 端口;定期修改密码。
9 常见踩坑点
- JDK 版本不对,SpringBoot4 启动报错,必须 JDK17+;
- MySQL 字符集不是 utf8mb4,emoji 表情保存失败;
- Redis 未设置密码,公网环境存在安全风险;
- 文件目录权限不足,商品图片上传失败;
- 支付回调内网环境无法接收,需要公网域名;
- 订单长时间未支付,定时任务 XXL-JOB 配置错误,订单无法自动关闭;
- Nginx 跨域配置错误,前端无法调用后端接口。