logo
5
0
WeChat Login

yshop 意象商城系统

项目概要

yshop 是基于当前流行技术组合的前后端分离 B2C(单商户)/ B2B2C(多商户)商城系统,采用 SpringBoot2 + MyBatis-Plus + SpringSecurity + JWT + Redis + Vue + UniApp 技术栈,包含商品、多规格、运费模板、素材库、拼团、快递、秒杀、优惠券、积分、分销、会员、充值等功能,适合企业或个人二次开发。

架构图

┌──────────────────────────────────────────────────────────────────┐
│                     Docker Compose (中间件)                       │
│                                                                  │
│  ┌──────────────────┐  ┌──────────────────┐                      │
│  │  MySQL 8 (预初始化)│  │   Redis 7        │                      │
│  │  yshop_mall_boot │  │                  │                      │
│  │  :3306           │  │   :6379          │                      │
│  └────────┬─────────┘  └────────┬─────────┘                      │
│           │                      │                               │
│           │  端口映射到宿主机      │                               │
└───────────┼──────────────────────┼───────────────────────────────┘
            │                      │
            ▼                      ▼
┌──────────────────────────────────────────────────────────────────┐
│                  env 容器 (手动启动服务)                           │
│                                                                  │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────────┐       │
│  │ yshop-admin  │  │  yshop-app   │  │   Vue 前端        │       │
│  │ :8001        │  │  :8008       │  │   :8686 (dev)    │       │
│  └──────────────┘  └──────────────┘  └──────────────────┘       │
│                                                                  │
│  Maven 腾讯云源 → .mvn/settings.xml                              │
│  npm 腾讯云源   → yshop-mall-vue/.npmrc                          │
│  连接 localhost:3306 (MySQL) / localhost:6379 (Redis)              │
└──────────────────────────────────────────────────────────────────┘

一键启动(推荐)

项目提供了 start-services.sh 一键启动脚本,自动完成中间件检查、后端启动、前端启动和服务验证,并输出每个环节的耗时统计。

# 1. 启动中间件(MySQL + Redis)
docker compose up -d
# 2. 构建 + 启动所有服务(首次使用或代码变更后)
bash start-services.sh build
# 3. 直接启动所有服务(已构建过,无需重新编译)
bash start-services.sh
# 4. 查看服务状态
bash start-services.sh status
# 5. 停止所有业务服务
bash start-services.sh stop

分步启动

第一步:启动中间件(Docker Compose)

docker compose up -d

等待 MySQL 和 Redis 健康检查通过:

# 查看中间件状态,确认 mysql 和 redis 均为 healthy
docker compose ps

第二步:构建后端

项目已配置腾讯云加速源(.mvn/settings.xml + pom.xml),依赖下载会自动走腾讯云镜像。 Maven 本地仓库缓存于 /root/.m2,首次构建约 72s,缓存后约 10s。

cd /workspace/yshop-mall-boot

# 构建项目(跳过测试,启用并行编译)
mvn clean package -DskipTests -s .mvn/settings.xml -T 1C

构建成功后会在以下路径生成 jar 包:

  • yshop-admin/target/yshop-admin-1.9.0.jar
  • yshop-app/target/yshop-app-1.9.0.jar

第三步:启动后端服务

cd /workspace/yshop-mall-boot

# 创建文件上传目录
mkdir -p /home/yshop/file /home/yshop/avatar

# 启动管理后台 API(端口 8001)
java -Xms1g -Xmx1g -jar yshop-admin/target/yshop-admin-1.9.0.jar --spring.profiles.active=dev &

# 启动移动端 API(端口 8008)
java -Xms1g -Xmx1g -jar yshop-app/target/yshop-app-1.9.0.jar --spring.profiles.active=dev &

使用 dev profile,连接 localhost 的 MySQL 和 Redis(由 Docker Compose 端口映射提供)。 日志直接输出到终端,如需后台运行可自行追加 nohup ... > xxx.out 2>&1 &

等待服务就绪后,检查端口是否监听:

ss -tlnp | grep -E '8001|8008'

第四步:启动前端(可选)

已配置 .npmrc 使用腾讯云 npm 加速源,npm install 自动走腾讯云镜像。

cd /workspace/yshop-mall-vue
npm install
npm run dev

访问地址

服务地址
管理后台前端http://localhost:8686
管理后台 APIhttp://localhost:8001
移动端 APIhttp://localhost:8008
Swagger (Admin)http://localhost:8001/swagger-ui.html
Swagger (App)http://localhost:8008/swagger-ui.html

初始化账号密码: admin / 123456

常用命令

# 启动中间件
docker compose up -d

# 停止中间件
docker compose down

# 查看中间件状态
docker compose ps

# 查看中间件日志
docker compose logs -f mysql
docker compose logs -f redis

# 停止后端服务
pkill -f yshop-admin
pkill -f yshop-app

# 重新构建(代码变更后)
cd /workspace/yshop-mall-boot && mvn clean package -DskipTests -s .mvn/settings.xml -T 1C

缓存路径

以下路径建议声明为缓存,避免每次环境重建重复下载:

路径大小说明
/root/.m2~169MMaven 依赖缓存(首次构建 72s → 缓存后 10s)
/root/.npm~220Mnpm 下载缓存(加速 npm install)
/workspace/yshop-mall-vue/node_modules~447M前端依赖(省去 npm install 约 30s)

注:完整 JDK 8 已包含在 env 镜像中(/usr/local/openjdk-8),无需额外缓存。

镜像清单

镜像说明
docker.cnb.cool/xh-test/npc-showcase/show/mysql-yshopMySQL 8.0(预初始化 yshop_mall_boot 数据库,含 83 张表)
docker.cnb.cool/xh-test/npc-showcase/show/redis:7-alpineRedis 7
docker.cnb.cool/xh-test/npc-showcase/show/env应用运行环境(JDK 8 + Maven 3.8.8 + Node.js 16.20.2)

构建 env 镜像

# 在项目根目录构建包含 JDK + Maven + Node.js 的环境镜像
docker build -f Dockerfile.env -t docker.cnb.cool/xh-test/npc-showcase/show/env:latest .
docker push docker.cnb.cool/xh-test/npc-showcase/show/env:latest

项目结构

子工程说明
yshop-mall-bootJava 后端工程(Spring Boot 2.7 + MyBatis-Plus)
yshop-mall-vue管理后台前端(Vue 2 + Element UI)
yshop-mall-uniapp移动端(UniApp,支持小程序 / H5)

致谢

本项目基于 yshop 意象商城 开源版本,感谢原作者的贡献。

About

https://cnb.cool/xh-test/npc/npc-demo-4

48.86 MiB
19 Call5 forks0 stars5 branches0 TagREADMEApache-2.0 license
Language
Java26.7%
Vue24.3%
JavaScript19.3%
CSS3.6%
Others26.1%