GitHub - hxrui/youlai-mall: youlai-mall 是基于Spring Boot 2.5.0、Spring Cloud 20...
source link: https://github.com/hxrui/youlai-mall
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
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 ├── 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
-
创建数据库
- 新建平台数据库,执行项目
docs/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
服务进入控制台导入docs/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
Star趋势
- Github
- Gitee
contributors
因为微信交流群满200人只能通过邀请进入,如果想进入交流群学习可添加以下开发人员,备注“有来“由其拉进群。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK