docs | ||
mall-oms | ||
mall-pms | ||
mall-sms | ||
mall-ums | ||
youlai-admin | ||
youlai-auth | ||
youlai-common | ||
youlai-gateway | ||
.gitignore | ||
LICENSE | ||
pom.xml | ||
README.md |
项目信息
项目简介
youlai-mall 是基于Spring Boot 2.5.0、Spring Cloud 2020 & Alibaba 2021、vue、element-ui、uni-app快速构建的一套全栈开源商城项目。
项目采用微服务、前后端分离开发模式;汇集全栈主流的技术栈; 涉及 后端微服务 、 前端管理 、 微信小程序 和 APP应用 等多端的开发。
项目特色
- Spring Cloud + Vue + Docker全栈开发
- 项目使用的都是当前主流的技术栈,无过度自定义封装,易学习理解和方便二次扩展
- 基于Spring Boot 2.5.0、Spring Cloud 2020 & Alibaba 2021一站式微服务解决方案实现快速开发
- 完整的Spring Security OAuth2 认证中心统一认证授权,网关统一鉴权逻辑
- 特有一套微服务+前后端分离的RBAC权限设计,实现Spring Cloud Gateway网关下的RESTful接口细粒度的统一鉴权和vue页面按钮级别权限控制
- 基于vue-element-admin的后台前端解决方案,实现动态路由
- 移动端采用uni-app、实现跨多端移动应用开发,包括微信小程序、Android和IOS等
- Docker快速构建项目环境和一键打包部署微服务项目
项目预览
- 系统管理
- 微信小程序
项目架构流程图
技术栈
-
后端技术栈: Spring Boot、Spring Cloud、Spring Cloud Alibaba、Spring Security OAuth2、JWT、Mybatis-Plus、Seata、Sentinel、ELK、Redis
-
前端技术栈: vue、element-ui、uni-app、vue-element-admin
项目地址
线上预览地址: http://www.youlai.tech
项目名称 | 源码地址 | 项目名称 | 源码地址 |
---|---|---|---|
微服务后台 | youlai-mall | 微信小程序 | youlai-mall-weapp |
管理前端 | youlai-mall-admin | APP应用 | youlai-mall-app |
项目结构
youlai-mall
├── docs
├── nacos -- Nacos配置文件
├── sql -- mysql数据库脚本
├── mall-oms
├── oms-api -- 订单中心Feign接口客户端
├── oms-boot -- 订单中心
├── mall-pms
├── pms-api -- 商品中心Feign接口客户端
├── pms-boot -- 商品中心
├── mall-sms
├── sms-api -- 营销中心Feign接口客户端
├── sms-boot -- 营销中心
├── mall-ums
├── ums-api -- 会员中心Feign接口客户端
├── ums-boot -- 会员中心
├── middleware -- 中间件(Nacos、Sentinel)
├── youlai-admin
├── admin-api -- 系统管理服务Feign接口客户端
├── admin-boot -- 系统管理服务
├── youlai-auth -- 认证中心【OAuth2认证服务器】
├── youlai-common -- 公共模块
└── youlai-gateway -- Gateway网关【OAuth2资源服务器】
项目启动
后台微服务启动
-
安装环境
安装
MySQL8
、Redis
-
创建数据库
- 新建平台数据库,执行项目
document/sql
下的SQL脚本完成数据库创建,基础sql脚本为youlai.sql
,商城业务的脚本为mall-*
,商城数据库按需创建 - 创建
Nacos
数据库,执行脚本middleware/nacos/conf/nacos-mysql.sql
完成Nacos
数据库的初始化
- 新建平台数据库,执行项目
-
Nacos配置和启动(非常重要)
-
修改
Nacos
数据源,进入配置middleware/nacos/conf/application.properties
将数据源修改为自己的环境连接 -
启动
Nacos
, IDEA下方工具栏点击Terminal终端命令行,执行cd middleware/nacos/bin
命令切换到Nacos
的启动脚本文件夹下,然后执行startup -m standalone
命令启动Nacos
服务; -
启动
Nacos
成功之后,访问Nacos
控制台,在浏览器输入 http://localhost:8848/nacos ,输入用户名/密码:nacos/nacos进入管理页面; -
导入
Nacos
配置,在启动Nacos
服务进入控制台导入document/nacos/DEFAULT_GROUP.zip
配置,然后分别进入各个项目配置文件中修改MySQL、Redis连接信息即可。
-
-
Nacos
启动完成和MySQL、Redis连接信息修改完成后,分别启动youlai-gateway
、youlai-auth
、youlai-admin
模块, 启动类分别对应的是GatewayApplication、AuthApplication以及youlai-admin
的子模块admin-boot
的AdminApplication类,至此完成整个项目基础服务的启动;
管理前端启动
- 本机安装Node环境
- npm install
- npm run dev
- 访问 http://localhost:9527
微信小程序启动
- 下载
HBuilder X
和微信开发者工具
- 微信公众平台申请小程序,获得小程序的AppID
微信开发者工具
微信扫码登录,开启服务端口,点击工具栏设置
->安全设置
->安全
->服务端口
选择打开Hbuilder X
替换项目AppID成自己的,点击manifest.json
文件->微信小程序配置- Nacos控制台修改
youlai-auth
配置中的微信小程序AppID和AppSecret为自己申请的小程序 Hbuilder X
工具栏点击运行
->运行到小程序模拟器
->微信开发者工具
接口测试
Spring Security OAuth2认证授权接口
-
Postman
- 请求参数类型为Query Param或者form-data,出现很多错误的情况是将参数是JSON格式放在请求Body中
- Spring Security OAuth2新版本不再支持将客户端信息client_id和client_secret放在请求路径的这种方式,否者会出现401的错误(已验证)
- OAuth2客户端信息在Authorization标签选择Basic Auth然后填写client_id和client_secret
Query Params参数 Authorization -
Knife4j接口文档(推荐)
- 接口文档地址,启动网关访问 http://localhost:9999/doc.html (默认)
- 请求接口之前,先执行对应模块下的第一个接口Authorize完成认证,通过后再打开其他接口请求头会自动填充token
- client/123456 是有来项目预留用于测试的客户端信息,因为Knife4j完成自动填充不能包装返回值,和大多数实际项目需包装返回值添加状态码不符
认证授权 | 认证成功自动填充Header |
---|---|
其他说明
如果需要项目文档、进入项目交流群、微信小程序体验或者项目搭建有什么问题,可加我微信(haoxianrui)备注一下“有来”二字即可,放心没有公众号。
最后希望大家一起参与有来开源项目的开发~