yshop-drink全流程部署指南:从环境搭建到功能验证的7个关键步骤
yshop-drink是一款基于Java17+SpringBoot3+Vue3+uniapp技术栈的前后端分离点餐系统,支持多门店管理和saas多租户模式。本指南将从环境准备到功能验证,帮助开发者快速部署这套开源项目部署方案,实现前后端分离配置与多端应用搭建。
1. 环境兼容性检测
1.1 开发环境要求
yshop-drink采用当前流行的技术组合,对开发环境有以下要求:
- JDK 17+(提供长期支持的Java版本,确保SpringBoot3兼容性)
- MySQL 8.0+(支持新的JSON特性和性能优化)
- Redis 6.2+(用于缓存和会话管理)
- Node.js 16.x+(Vue3及uniapp的运行环境)
- Maven 3.6+(Java项目构建工具)
- Git(版本控制工具)
💡 提示:使用java -version、node -v等命令检查环境版本是否符合要求
1.2 环境检测脚本
在终端执行以下命令,验证开发环境是否就绪:
# 检查Java环境
java -version | grep "17\." || echo "JDK 17+ not found"
# 检查Node环境
node -v | grep "v16\." || echo "Node.js 16+ not found"
# 检查数据库连接
mysql -u root -p -e "SELECT VERSION();" || echo "MySQL connection failed"
[!TIP] 若命令执行失败,请先安装或升级相应组件。推荐使用SDKMAN!管理Java版本,nvm管理Node.js版本。
2. 系统架构解析
2.1 整体架构设计
yshop-drink采用分层架构设计,主要包含以下几个部分:
- 后端服务层:基于SpringBoot3构建的RESTful API服务,提供业务逻辑处理
- 数据持久层:使用MybatisPlus操作数据库,支持多数据源配置
- 前端应用层:包含管理后台(Vue3)和移动端(uniapp)两个独立应用
- 认证授权层:采用Spring Security OAuth2+JWT实现无状态身份验证机制
- 缓存层:使用Redis缓存热点数据,提升系统性能
2.2 核心功能模块
系统主要包含以下功能模块:
- 商品管理:商品分类、规格、库存管理等功能
- 订单管理:订单创建、支付、取消等全流程处理
- 门店管理:多门店配置、配送范围设置等
- 会员管理:用户信息、积分、充值等会员体系功能
- 营销管理:优惠券、促销活动等营销工具
3. 组件部署流程
3.1 源码获取
📌 步骤1:克隆项目代码库
git clone https://gitcode.com/gh_mirrors/ys/yshop-drink.git
cd yshop-drink
📌 步骤2:检查项目结构
ls -l
# 应包含以下核心目录
# yshop-drink-boot3/ yshop-drink-vue3/ yshop-drink-uniapp-vue3/
3.2 数据库部署
📌 步骤1:创建数据库
CREATE DATABASE yshop_drink CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
📌 步骤2:导入初始化脚本
mysql -u root -p yshop_drink < yshop-drink-boot3/sql/yixiang-drink-open.sql
💡 提示:默认数据库用户名为root,密码为空。实际部署时请修改为安全密码
3.3 后端服务部署
📌 步骤1:配置数据库连接
# 编辑配置文件
vi yshop-drink-boot3/yshop-server/src/main/resources/application.yml
修改以下配置项:
spring:
datasource:
url: jdbc:mysql://localhost:3306/yshop_drink?useUnicode=true&characterEncoding=UTF-8
username: 【root】 # 默认值
password: 【123456】 # 调整建议:使用强密码
redis:
host: 【localhost】 # 默认值
port: 【6379】 # 默认值
[!TIP] 风险提示:生产环境中不要使用默认密码,建议通过环境变量注入敏感配置
📌 步骤2:构建并启动后端服务
cd yshop-drink-boot3
mvn clean package '-Dmaven.test.skip=true'
java -jar yshop-server/target/yshop-server.jar
📌 步骤3:验证后端服务
curl http://localhost:8080/api/health
# 预期响应:{"status":"UP"}
4. 前端应用配置
4.1 管理后台配置
📌 步骤1:安装依赖
cd yshop-drink-vue3
pnpm install
📌 步骤2:配置API地址
# 创建开发环境配置文件
cat > .env.development << EOF
VUE_APP_API_URL=http://localhost:8080/api
EOF
📌 步骤3:启动开发服务器
npm run dev
👉 指引:浏览器访问 http://localhost:8081 验证前端服务,默认账号密码为admin/123456
4.2 移动端应用配置
📌 步骤1:导入项目到HBuilder
打开HBuilder,选择"导入项目",选择yshop-drink-uniapp-vue3目录
📌 步骤2:配置API地址
// 修改配置文件
// yshop-drink-uniapp-vue3/config/index.js
const config = {
baseUrl: 'http://localhost:8080/api' // API基础地址
}
📌 步骤3:运行到小程序模拟器
在HBuilder中,选择"运行" -> "运行到小程序模拟器" -> "微信开发者工具"
5. 关键参数配置
5.1 数据库连接配置
| 参数名 | 作用域 | 数据类型 | 默认值 | 调整建议 |
|---|---|---|---|---|
| url | 数据库 | 字符串 | jdbc:mysql://localhost:3306/yshop_drink | 生产环境使用主从分离地址 |
| username | 数据库 | 字符串 | root | 创建专用数据库用户,限制权限 |
| password | 数据库 | 字符串 | 空 | 使用强密码,定期更换 |
5.2 缓存配置
spring:
redis:
timeout: 30000 # 连接超时时间(毫秒)
lettuce:
pool:
max-active: 8 # 连接池最大连接数
max-idle: 8 # 连接池最大空闲连接数
min-idle: 2 # 连接池最小空闲连接数
💡 提示:根据服务器内存大小调整连接池参数,避免资源浪费
5.3 安全配置
yshop:
security:
jwt:
secret: 【yshop@drink2023】 # JWT密钥
expiration: 86400000 # 令牌有效期(毫秒)
ignore:
urls: # 无需认证的URL
- /api/auth/login
- /api/health
[!TIP] 风险提示:生产环境必须修改默认JWT密钥,建议使用环境变量注入
6. 功能验证与测试
6.1 管理后台功能验证
📌 步骤1:登录管理后台
访问 http://localhost:8081,使用默认账号admin/123456登录
📌 步骤2:验证核心功能
- 商品管理:检查是否可以添加、编辑商品
- 订单管理:模拟创建订单,检查订单状态流转
- 门店管理:添加测试门店,配置配送范围
6.2 移动端功能验证
📌 步骤1:在微信开发者工具中预览小程序
📌 步骤2:测试关键流程
- 浏览商品列表
- 加入购物车并下单
- 模拟支付流程
6.3 故障排查速查表
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 后端启动失败 | 数据库连接错误 | 检查application.yml中的数据库配置 |
| 前端无法访问API | 后端服务未启动 | 确认后端服务已正常运行 |
| 登录失败 | JWT配置错误 | 检查JWT密钥是否一致 |
| 商品图片无法显示 | 文件存储路径配置错误 | 检查upload.path配置项 |
7. 生产环境部署
7.1 后端服务部署
📌 步骤1:准备生产环境配置文件
# 创建生产环境配置
vi yshop-drink-boot3/yshop-server/src/main/resources/application-prod.yml
📌 步骤2:使用systemd管理服务
[Unit]
Description=yshop-drink backend service
After=network.target mysql.service redis.service
[Service]
User=appuser
WorkingDirectory=/opt/yshop-drink
ExecStart=/usr/bin/java -jar yshop-server.jar --spring.profiles.active=prod
SuccessExitStatus=143
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
7.2 前端应用部署
📌 步骤1:构建生产版本
cd yshop-drink-vue3
npm run build
📌 步骤2:配置Nginx
server {
listen 80;
server_name yshop-admin.example.com;
root /opt/yshop-drink/frontend/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location /api/ {
proxy_pass http://localhost:8080/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
7.3 性能调优建议
- JVM参数优化:
java -Xms2g -Xmx2g -XX:+UseG1GC -jar yshop-server.jar
-
数据库优化:
- 为常用查询添加索引
- 配置合适的连接池大小
- 定期备份数据
-
缓存策略:
- 热点数据缓存到Redis
- 配置合理的缓存过期时间
8. 高可用配置选项
8.1 多实例部署
通过部署多个后端服务实例,配合负载均衡实现高可用:
upstream yshop_backend {
server 192.168.1.101:8080;
server 192.168.1.102:8080;
}
server {
# ...
location /api/ {
proxy_pass http://yshop_backend/api/;
# ...
}
}
8.2 数据库主从复制
配置MySQL主从复制,提高读操作性能和数据安全性:
# 主库配置
server-id=1
log_bin=mysql-bin
binlog_do_db=yshop_drink
# 从库配置
server-id=2
relay_log=mysql-relay-bin
replicate_do_db=yshop_drink
[!TIP] 高可用配置建议在业务量达到一定规模后实施,初期单实例部署即可满足需求
9. 常见配置错误对照表
| 错误类型 | 错误信息 | 解决方案 |
|---|---|---|
| 数据库连接错误 | Access denied for user 'root'@'localhost' | 检查数据库用户名密码是否正确 |
| 端口占用 | Address already in use | 更换端口或结束占用进程 |
| 依赖冲突 | NoClassDefFoundError | 检查Maven依赖版本是否冲突 |
| 权限不足 | Permission denied | 检查文件/目录权限设置 |
通过以上步骤,您已经完成了yshop-drink项目的全流程部署。如需进一步定制开发,可以参考项目源码中的注释和文档,扩展系统功能以满足特定业务需求。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedJavaScript095- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
MiMo-V2.5-ProMiMo-V2.5-Pro作为旗舰模型,擅⻓处理复杂Agent任务,单次任务可完成近千次⼯具调⽤与⼗余轮上 下⽂压缩。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
Kimi-K2.6Kimi K2.6 是一款开源的原生多模态智能体模型,在长程编码、编码驱动设计、主动自主执行以及群体任务编排等实用能力方面实现了显著提升。Python00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00


