3

GitHub - hxrui/youlai-mall: youlai-mall 是基于Spring Boot 2.5.0、Spring Cloud 20...

 3 years ago
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.
neoserver,ios ssh client

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资源服务器】

后台微服务启动

  1. 安装环境

    安装MySQL8Redis

  2. 创建数据库

    • 新建平台数据库,执行项目docs/sql下的SQL脚本完成数据库创建,基础sql脚本为youlai.sql,商城业务的脚本为mall-*,商城数据库按需创建
    • 创建Nacos数据库,执行脚本middleware/nacos/conf/nacos-mysql.sql完成Nacos数据库的初始化
  3. 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连接信息即可。

  4. Nacos启动完成和MySQL、Redis连接信息修改完成后,分别启动youlai-gatewayyoulai-authyoulai-admin模块, 启动类分别对应的是GatewayApplication、AuthApplication以及youlai-admin的子模块admin-boot的AdminApplication类,至此完成整个项目基础服务的启动;

管理前端启动

  1. 本机安装Node环境
  2. npm install
  3. npm run dev
  4. 访问 http://localhost:9527

微信小程序启动

  1. 下载HBuilder X微信开发者工具
  2. 微信公众平台申请小程序,获得小程序的AppID
  3. 微信开发者工具微信扫码登录,开启服务端口,点击工具栏设置->安全设置->安全->服务端口选择打开
  4. Hbuilder X替换项目AppID成自己的,点击manifest.json文件->微信小程序配置
  5. Nacos控制台修改youlai-auth配置中的微信小程序AppID和AppSecret为自己申请的小程序
  6. Hbuilder X工具栏点击 运行->运行到小程序模拟器->微信开发者工具

Spring Security OAuth2认证授权接口

  • Postman

    1. 请求参数类型为Query Param或者form-data,出现很多错误的情况是将参数是JSON格式放在请求Body中
    2. Spring Security OAuth2新版本不再支持将客户端信息client_id和client_secret放在请求路径的这种方式,否者会出现401的错误(已验证)
    3. OAuth2客户端信息在Authorization标签选择Basic Auth然后填写client_id和client_secret

    Query Params参数 Authorization

  • Knife4j接口文档(推荐)

    1. 接口文档地址,启动网关访问 http://localhost:9999/doc.html (默认)
    2. 请求接口之前,先执行对应模块下的第一个接口Authorize完成认证,通过后再打开其他接口请求头会自动填充token
    3. client/123456 是有来项目预留用于测试的客户端信息,因为Knife4j完成自动填充不能包装返回值,和大多数实际项目需包装返回值添加状态码不符

认证授权 认证成功自动填充Header

项目文档地址

Star趋势

  • Github
  • Gitee

contributors

因为微信交流群满200人只能通过邀请进入,如果想进入交流群学习可添加以下开发人员,备注“有来“由其拉进群。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK