diff --git a/README.md b/README.md index 34aae6e42..7853cbbf8 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@
-## 🈶项目简介 +## 🚀项目简介 -[youlai-mall](https://gitee.com/haoxr) 是基于Spring Boot 2.7、Spring Cloud 2021 & Alibaba -2021、Vue3、Element-Plus、uni-app等全栈主流技术栈构建的开源商城项目,涉及 [后端微服务](https://gitee.com/youlaitech/youlai-mall)、 [前端管理](https://gitee.com/youlaitech/youlai-mall-admin)、 [微信小程序](https://gitee.com/youlaitech/youlai-mall-weapp) +[youlai-mall](https://gitee.com/haoxr) 是基于Spring Boot 3 、Spring Cloud & Alibaba +2022、Vue3、Element-Plus、uni-app等全栈主流技术栈构建的开源商城项目,涉及 [微服务接口](https://gitee.com/youlaitech/youlai-mall)、 [管理前端](https://gitee.com/youlaitech/youlai-mall-admin)、 [微信小程序](https://gitee.com/youlaitech/youlai-mall-weapp) 和 [APP应用](https://gitee.com/youlaitech/youlai-mall-weapp)等多端的开发。 -## ✨项目特色 - - 项目使用皆是当前主流前后端技术栈(持续更新...),无过度自定义封装,易理解学习和二次扩展; -- 极速启动模式,无条件提供线上环境,1分钟之内拥有微服务环境; -- SpringBoot 2.7、SpringCloud 2021 & Alibaba 2021 一站式微服务开箱即用的解决方案; -- Spring Security OAuth2 、 Spring Cloud Gateway 、 JWT 统一认证鉴权和常用 OAuth2 授权模式扩展; +- SpringBoot 3 、SpringCloud & Alibaba 2022 一站式微服务开箱即用的解决方案; +- Spring Authorization Server 、 JWT 常用 OAuth2 授权模式扩展; - 移动端采用终极跨平台解决方案 uni-app, 一套代码编译iOS、Android、H5和小程序等多个平台; - Jenkins、K8s、Docker实现微服务持续集成与交付(CI/CD)。 -## 💎在线演示 +## 🌈在线预览 -| 项目 | 演示地址 | 备用地址 | -|-------|--------------------------------------------|------------------------------------------| -| 商城管理端 | https://admin.youlai.tech | http://vue3.youlai.tech | -| 移动应用端 | http://app.youlai.tech | | -| 接口文档 | https://api.youlai.tech/doc.html | | -| 官网地址 | https://www.youlai.tech | https://doc.youlai.tech | -| 官方博客 | [博客园](https://www.cnblogs.com/haoxianrui/) | [CSDN](https://blog.csdn.net/u013737132) | +| 项目 | 地址 | 用户名/密码 | +|---------|---------------------------|--------------------| +| 管理端 | https://admin.youlai.tech | admin/123456 | +| 移动端(H5) | http://app.youlai.tech | 18866668888/666666 | +| 微信小程序 | 关注【有来技术】公众号| 获取体验码申请体验 | -## 💫源码地址 -| 项目 | Gitee | Github | GitCode | -|-------|--------------------------------------------------------|----------------------------------------------------------|---------| -| 微服务后端 | [youlai-mall](https://gitee.com/youlaiorg/youlai-mall) | [youlai-mall](https://github.com/youlaitech/youlai-mall) | - | -| 商城管理端 | [mall-admin](https://gitee.com/youlaiorg/mall-admin) | [mall-admin](https://github.com/youlaitech/mall-admin) | - | -| 移动应用端 | [mall-app](https://gitee.com/youlaiorg/mall-app) | [mall-app](https://github.com/youlaitech/mall-app) | - | +## 🍀源码地址 -## 🗂目录结构 +| | Gitee | Github | GitCode | +|------|--------------------------------------------------------|----------------------------------------------------------|---------| +| 后端接口 | [youlai-mall](https://gitee.com/youlaiorg/youlai-mall) | [youlai-mall](https://github.com/youlaitech/youlai-mall) | - | +| 管理前端 | [mall-admin](https://gitee.com/youlaiorg/mall-admin) | [mall-admin](https://github.com/youlaitech/mall-admin) | - | +| 移动端 | [mall-app](https://gitee.com/youlaiorg/mall-app) | [mall-app](https://github.com/youlaitech/mall-app) | - | + +## 📁目录结构 ``` text youlai-mall ├── docs ├── nacos # Nacos配置 ├── sql # SQL脚本 - ├── mysql5 # 接口请求 - ├── mysql8 # 接口请求 + ├── mysql5 # MySQL5 脚本 + ├── mysql8 # MySQL8 脚本 ├── mall-oms # 订单服务 ├── mall-pms # 商品服务 ├── mall-sms # 营销服务 @@ -68,166 +66,90 @@ youlai-mall ├── youlai-auth # OAuth2认证授权中心 ├── youlai-common # 公共模块 ├── common-core # 核心依赖 - ├── common-file # 文件接口 - ├── common-log # 日志公共配置 - ├── common-mybatis # mybatis 公共依赖配置 - ├── common-rabbitmq # rabbitmq 公共依赖配置 - ├── common-redis # redis 公共依赖配置 - ├── common-seata # seata 公共依赖配置 - ├── common-security # 订单应用 - ├── common-sms # 订单应用 - ├── common-web # 订单应用 + ├── common-file # 文件公共模块 + ├── common-log # 日志公共模块 + ├── common-mybatis # mybatis 公共模块 + ├── common-rabbitmq # rabbitmq 公共模块 + ├── common-redis # redis 公共模块 + ├── common-seata # seata 公共模块 + ├── common-security # 资源服务器安全公共模块 + ├── common-sms # 短信公共模块 + ├── common-web # web 公共模块 ├── youlai-gateway # 网关 ├── youlai-system # 系统服务 - ├── oms-api # 订单Feign接口 - ├── oms-boot # 订单应用 + ├── system-api # 系统Feign接口 + ├── system-boot # 系统管理接口 └── end ``` -## ✨环境准备 +## 🌌启动项目 + +### 环境要求 - JDK 17 -- IDEA 2023 -- Nacos 2.2.2 + [Windows 安装 Nacos 2.2.2](https://youlai.blog.csdn.net/article/details/130864925) -- Seata 1.6.1 + [Windows 安装 Seata 1.6.1](https://juejin.cn/post/7250361765053087781) +- MySQL 8 或 MySQL 5.7 +- Nacos 2.2+ +- Seata 1.6+ + +### 安装中间件 + +| | Windows | Linux | 是否必装 | +| -------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------ | +| Nacos | [Windows 安装 Nacos 2.2](https://youlai.blog.csdn.net/article/details/130864925) | [Linux 安装 Nacos 2.3](https://youlai.blog.csdn.net/article/details/132592040) | 是 | +| MySQL | [Windows 安装 MySQL 8](https://youlai.blog.csdn.net/article/details/133272887) | [Linux 安装 MySQL8](https://youlai.blog.csdn.net/article/details/130398179) | 否(建议安装) | +| Redis | [Windows 安装 Redis](https://youlai.blog.csdn.net/article/details/133410293) | [Linux 安装 Redis](https://youlai.blog.csdn.net/article/details/130439335) | 否(建议安装) | +| Seata | [Windows 安装 Seata 1.6](https://youlai.blog.csdn.net/article/details/133295970) | [Linux 安装 Seata 1.7](https://youlai.blog.csdn.net/article/details/133376131) | 否 | +| RabbitMQ | / | [Linux 安装 RabbitMQ](https://blog.csdn.net/u013737132/article/details/130439122) | 否 | + +💡默认情况下,线上 MySQL 数据是只读的,如果需要进行修改或删除操作,建议安装 MySQL。 + +### 初始化数据库 + +进入 `docs/sql` 目录 , 根据 MySQL 版本选择对应的脚本; + +先执行 [database.sql](docs%2Fsql%2Fmysql8%2Fdatabase.sql) 完成数据库的创建; + +再执行 [youlai_system.sql](docs%2Fsql%2Fmysql8%2Fyoulai_system.sql) 、[oauth2_server.sql](docs%2Fsql%2Fmysql8%2Foauth2_server.sql)、mall_*.sql 完成数据表的创建和数据初始化。 + +### 导入 Nacos 配置 + +打开浏览器,地址栏输入 Nacos 控制台的地址 [ http://localhost:8848/nacos]( http://localhost:8848/nacos) ; + +输入用户名/密码:nacos/nacos ; + +进入控制台,点击左侧菜单 `配置管理` → `配置列表` 进入列表页面,点击 `导入配置` +选择项目中的 `docs/nacos/nacos_config.zip` 文件。 + +### 修改 Nacos 配置 + +在共享配置文件 youlai-common.yaml 中,包括 MySQL、Redis、RabbitMQ 和 Seata 的连接信息,默认是有来线上的环境。 + +如果您有自己的环境,可以按需修改相应的配置信息。 + +如果没有自己的 MySQL、Redis、RabbitMQ 和 Seata 环境,可以直接使用默认的配置。 + +### 启动服务 + + - 进入 `youlai-gateway` 模块的启动类 GatewayApplication 启动网关; + + - 进入 `youlai-auth` 模块的启动类 AuthApplication 启动认证授权中心; + + - 进入 `youlai-system` → `system-boot` 模块的启动类 SystemApplication 启动系统服务; + + - 至此完成基础服务的启动,商城服务按需启动,启动方式和 `youlai-system` 一致; + + - 访问接口文档地址测试: [http://localhost:9999/doc.html](http://localhost:9999/doc.html) -## 🥇极速启动 +## 📝开发文档 -> `极速启动` -> 是方便快速启动查看效果的启动方式,其中的数据库和Redis等中间件使用的是有来提供的云环境,切勿修改数据,有时间条件建议`本地启动`。 - -1. **启动 Nacos** +- [Spring Authorization Server 扩展 OAuth2 密码模式](https://youlai.blog.csdn.net/article/details/134024381) +- [Spring Cloud Gateway + Knife4j 网关聚合和 OAuth2 密码模式测试](https://youlai.blog.csdn.net/article/details/134081509) -- IDEA 打开命令行终端 Terminal,输入 `cd middleware/nacos/bin` 切换到 Nacos 的 bin 目录,执行 `startup -m standalone` 启动 - Nacos 服务。 +## 💖加交流群 - -2. **服务启动** - - - `youlai-gateway` 模块的启动类 GatewayApplication 启动网关; - - - `youlai-auth` 模块的启动类 AuthApplication 启动认证中心; - - - `youlai-system` → `system-boot` 模块的启动类 SystemApplication 启动系统服务; - - - 至此完成基础服务的启动,商城服务按需启动,启动方式和 `youlai-system` 一致; - - - 访问接口文档地址测试: [http://localhost:9999/doc.html](http://localhost:9999/doc.html) - -## 🥈本地启动 - -1. **中间件安装** - - > 为了避免数据和线上环境冲突,MySQL 和 Redis 必装,其他不安装可默认使用有来线上环境(🔴必装 ⚪可选) - - - 🔴 MySQL [Linux部署](https://www.youlai.tech/pages/vjoqc/) - - 🔴 Redis [Linux部署](https://www.youlai.tech/pages/k2a20/) - - ⚪ RabbitMQ [Linux部署](https://www.youlai.tech/pages/8znee/) - - ⚪ Seata [本地启动](https://www.youlai.tech/pages/0bzvi/) - | [Linux部署](https://www.youlai.tech/pages/4vjq5/) - - ⚪ Sentinel [本地启动]() | [Linux部署]() - - ⚪ Canal [本地启动]() | [Linux部署]() - -2. **数据库创建和数据初始化** - - - **系统数据库** - - 进入 `docs/sql` 目录 , 根据 MySQL 版本选择对应的脚本; - - 先执行 `database.sql` 完成数据库的创建; - - 再执行 `youlai.sql` 、`oauth2.sql`、`mall_*.sql` 完成数据表的创建和数据初始化。 - - - **Nacos 数据库** - - 创建名为 `nacos` 的数据库,执行 `middleware/nacos/conf/nacos-mysql.sql` 脚本完成 Nacos 数据库初始化。 - -3. **Nacos 配置持久化至 MySQL** - - 进入项目的 `middleware/nacos/conf/application.properties` 文件修改 Nacos 配置的数据连接,需要修改配置如下: - - ```properties - spring.datasource.platform=mysql - db.num=1 - db.url.0=jdbc:mysql://localhost:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC - db.user.0=root - db.password.0=123456 - ``` - -4. **导入Nacos配置** - - IDEA 打开命令行终端 Terminal,输入 `cd middleware/nacos/bin` 切换到 Nacos 的 bin 目录,执行 `startup -m standalone` 启动 - Nacos 服务。 - - 打开浏览器,地址栏输入 Nacos 控制台的地址 [ http://localhost:8848/nacos]( http://localhost:8848/nacos) ; - - 输入用户名/密码:nacos/nacos ; - - 进入控制台,点击左侧菜单 `配置管理` → `配置列表` 进入列表页面,点击 `导入配置` - 选择项目中的 `docs/nacos/nacos_config.zip` 文件。 - -5. **修改Nacos配置** - - 在 Nacos 控制台配置列表选择共享配置 `youlai-common.yaml` 进行编辑,修改 MySQL、Redis、RabbitMQ等中间件信息为您自己本地环境,默认「有来」线上环境。 - -6. **修改Nacos配置中心地址** - - 批量替换应用的 bootstrap-dev.yml 文件的配置中心地址 `http://f.youlai.tech:8848` → `http://localhost:8848` - ,默认「有来」线上的配置中心地址。 - -7. **服务启动** - - - 进入 `youlai-gateway` 模块的启动类 GatewayApplication 启动网关; - - - 进入 `youlai-auth` 模块的启动类 AuthApplication 启动认证授权中心; - - - 进入 `youlai-system` → `system-boot` 模块的启动类 SystemApplication 启动系统服务; - - - 至此完成基础服务的启动,商城服务按需启动,启动方式和 `youlai-system` 一致; - - - 访问接口文档地址测试: [http://localhost:9999/doc.html](http://localhost:9999/doc.html) - -## 🧩项目截图 - -| 「App」Spring Security OAuth2 手机短信验证码模式 | 「小程序」Spring Security OAuth2 微信授权模式 | -|----------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------| -| | | -| **「管理前端」Spring Security OAuth2 密码模式** | **「管理前端」Spring Security OAuth2 验证码模式** | -| | | - -## - -## 💹趋势统计 - -[![Star History Chart](https://api.star-history.com/svg?repos=youlaitech/youlai-mall&type=Timeline)](https://star-history.com/#youlaitech/youlai-mall&Timeline) - -## 💻贡献者们 - - - - -## 💥加交流群 - -> 群二维码失效添加开发者,备注“有来”进群即可 - -| 交流群 | 开发者 | 开发者 | -|---------------------------------------------------------|-------------------------------------------------|---------------------------------------------------| -| ![](https://oss.youlai.tech/youlai-boot/2023/05/13/d085a0b01c914daebe9b4e0f251b9fc4.png) | ![](https://www.youlai.tech/files/blog/rui.jpg) | ![](https://www.youlai.tech/files/blog/chuan.jpg) | +> 关注公众号【有来技术】,获取交流群二维码,二维码过期请加我微信(`haoxianrui`)备注“有来”,我拉你进群。 | ![](https://s2.loli.net/2022/11/19/OGjum9wr8f6idLX.png) | |---------------------------------------------------------| - -## 📰开源协议 - -Apache Licence 2.0 是著名的非盈利开源组织Apache采用的协议。该协议鼓励代码共享和尊重原作者的著作权,商用或二次开源须要满足的条件: - -- 需要给代码的用户一份Apache Licence。 -- 如果你修改了代码,需要在被修改的文件中说明。 -- 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包括的说明。 -- 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache - Licence构成更改。 Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。 -- -如果你参考或借鉴了本项目的源码,请你在项目的说明文档添加对本项目的引用申明和添加Git仓库地址(https://gitee.com/youlaitech/youlai-mall)。 -