yudao-cloud 开发指南 yudao-cloud 开发指南
      视频教程
        单体版 (opens new window)
        作者博客 (opens new window)
        GitHub (opens new window)
        • 萌新必读

          • 简介
          • 交流群
          • 视频教程
          • 功能列表
          • 快速启动(后端项目)
            • 快速启动(前端项目)
            • 接口文档
            • 技术选型
            • 项目结构
            • 代码热加载
            • 一键改包
            • 删除功能
            • 内网穿透
            • 达梦数据库专属
          • 后端手册

            • 新建服务
            • 代码生成【单表】(新增功能)
            • 代码生成【主子表】
            • 代码生成(树表)
            • 功能权限
            • 数据权限
            • 用户体系
            • 三方登录
            • OAuth 2.0(SSO 单点登录)
            • SaaS 多租户【字段隔离】
            • SaaS 多租户【数据库隔离】
            • WebSocket 实时通信
            • 异常处理(错误码)
            • 参数校验
            • 分页实现
            • VO 对象转换、数据翻译
            • 文件存储(上传下载)
            • Excel 导入导出
            • 操作日志、访问日志、异常日志
            • MyBatis 数据库
            • MyBatis 联表&分页查询
            • 多数据源(读写分离)
            • Redis 缓存
            • 本地缓存
            • 异步任务
            • 分布式锁
            • 幂等性(防重复提交)
            • 请求限流(RateLimiter)
            • 单元测试
            • 验证码
            • 工具类 Util
            • 数据库文档
          • 微服务手册

            • 微服务调试(必读)
            • 注册中心 Nacos
            • 配置中心 Nacos
            • 服务网关 Spring Cloud Gateway
            • 服务调用 Feign
            • 定时任务 XXL Job
            • 消息队列(内存)
            • 消息队列(Redis)
            • 消息队列(RocketMQ)
            • 消息队列(RabbitMQ)
            • 消息队列(Kafka)
            • 消息队列(Cloud)
            • 分布式事务 Seata
            • 服务保障 Sentinel
          • 工作流手册

            • 工作流演示
            • 功能开启
            • 工作流(达梦适配)
            • 审批接入(流程表单)
            • 审批接入(业务表单)
            • 流程设计器(BPMN)
            • 流程设计器(钉钉、飞书)
            • 选择审批人、发起人自选
            • 会签、或签、依次审批
            • 流程发起、取消、重新发起
            • 审批通过、不通过、驳回
            • 审批加签、减签
            • 审批转办、委派、抄送
            • 执行监听器、任务监听器
            • 流程表达式
            • 流程审批通知
          • 大屏手册

            • 报表设计器
            • 大屏设计器
          • 支付手册

            • 功能开启
            • 支付宝支付接入
            • 微信公众号支付接入
            • 微信小程序支付接入
            • 支付宝、微信退款接入
          • 会员手册

            • 功能开启
            • 微信公众号登录
            • 微信小程序登录
            • 会员用户、标签、分组
            • 会员等级、积分、签到
          • 商城手册

            • 商城演示
            • 功能开启
            • 商城装修
            • 【商品】商品分类
            • 【商品】商品属性
            • 【商品】商品 SPU 与 SKU
            • 【商品】商品评价
            • 【交易】购物车
            • 【交易】交易订单
            • 【交易】售后退款
            • 【交易】快递发货
            • 【交易】门店自提
            • 【交易】分销返佣
            • 【营销】优惠劵
            • 【营销】拼团活动
            • 【营销】秒杀活动
            • 【营销】砍价活动
            • 【营销】满减送
            • 【营销】限时折扣
            • 【营销】内容管理
            • 【统计】会员、商品、交易统计
          • ERP手册

            • ERP 演示
            • 功能开启
            • 【产品】产品信息、分类、单位
            • 【库存】产品库存、库存明细
            • 【库存】其它入库、其它出库
            • 【库存】库存调拨、库存盘点
            • 【采购】采购订单、入库、退货
            • 【销售】销售订单、出库、退货
            • 【财务】采购付款、销售收款
          • CRM手册

            • CRM 演示
            • 功能开启
            • 【线索】线索管理
            • 【客户】客户管理、公海客户
            • 【商机】商机管理、商机状态
            • 【合同】合同管理、合同提醒
            • 【回款】回款管理、回款计划
            • 【产品】产品管理、产品分类
            • 【通用】数据权限
            • 【通用】跟进记录、待办事项
          • 公众号手册

            • 功能开启
            • 公众号接入
            • 公众号粉丝
            • 公众号标签
            • 公众号消息
            • 自动回复
            • 公众号菜单
            • 公众号素材
            • 公众号图文
            • 公众号统计
          • 系统手册

            • 短信配置
            • 邮件配置
            • 站内信配置
            • 数据脱敏
            • 敏感词
            • 地区 & IP 库
          • 运维手册

            • 开发环境
            • Linux 部署
            • Docker 部署
            • Jenkins 部署
            • HTTPS 证书
            • 服务监控
          • 前端手册 Vue 3.x

            • 开发规范
            • 菜单路由
            • Icon 图标
            • 字典数据
            • 系统组件
            • 通用方法
            • 配置读取
            • CRUD 组件
            • 国际化
            • IDE 调试
            • 代码格式化
          • 前端手册 Vue 2.x

            • 开发规范
            • 菜单路由
            • Icon 图标
            • 字典数据
            • 系统组件
            • 通用方法
            • 配置读取
          • 更新日志

            • 【v2.1.0】开发中
            • 【v2.0.1】2024-03-01
            • 【v2.0.0】2024-01-26
            • 【v1.9.0】2023-12-01
            • 【v1.8.3】2023-10-24
          • 开发指南
          • 萌新必读
          芋道源码
          2022-03-01
          目录
          👍 相关视频教程
          1. 克隆代码
          2. Apifox 接口工具
          3. 基础设施(必选)
          3.1 初始化 MySQL
          3.2 初始化 Redis
          3.3 初始化 Nacos
          4. 基础设施(可选)
          4.1 RocketMQ
          4.2 XXL-Job
          4.3 Seata
          4.4 Sentinel
          4.5 Elasticsearch
          5. 启动后端项目
          5.1 编译项目
          5.2 启动 gateway 服务
          5.3 启动 system 服务
          5.3 启动 infra 服务
          5.4 启动 bpm 服务
          5.5 启动 report 服务
          5.6 启动 pay 服务
          5.7 启动 mp 服务
          5.8 启动 mall 服务
          6. 启动前端项目【简易】
          7. 启动前端项目【完整】
          666. 彩蛋

          快速启动(后端项目)

          目标:使用 IDEA 工具,将后端项目 yudao-cloud (opens new window) 运行起来 🛫

          整个过程非常简单,预计 15 分钟就可以完成,取决于大家的网速。

          ↓↓↓ 技术交流群,一起苦练技术基本功,每日精进 30 公里!↓↓↓

          交流群

          # 👍 相关视频教程

          • 从零开始 02:在 Windows 环境下,如何运行前后端项目? (opens new window)
          • 从零开始 03:在 MacOS 环境下,如何运行前后端项目? (opens new window)

          # 1. 克隆代码

          使用 IDEA (opens new window) 克隆 https://github.com/YunaiV/yudao-cloud (opens new window) 仓库的最新代码,并给该仓库一个 Star (opens new window)。

          注意:不建议使用 Eclipse,因为它没有支持 Lombok 和 Mapstruct 插件。

          克隆完成后,耐心等待 Maven 下载完相关的依赖。一定要注意:

          ① 默认情况下,使用 master 分支,它对应 JDK 8 + Spring Boot 2.7.18 版本。

          ② 如果你想体验 JDK 21 + Spring Boot 3.X 版本,需要切换到 master-jdk17 分支。

          项目一览

          友情提示:项目的每个模块的作用,可见 《开发指南 —— 项目结构》 文档。

          使用的 Spring Cloud 版本较新,所以需要下载一段时间。趁着这个时间,胖友可以给项目添加一个 Star (opens new window),支持下艿艿。

          Star 一波

          # 2. Apifox 接口工具

          点击 Apifox (opens new window) 首页,下载对应的 Apifox 桌面版。如下图所示:

          为什么要下载 Apifox 桌面版?

          艿艿已经卸载 Postman,使用 Apifox 进行替代。国产软件,yyds 永远滴神!

          国内很多互联网公司,包括百度、阿里、腾讯、字节跳动等等在内,都在使用 Apifox 作为 API 工具。

          Apifox 下载

          解压后,双击进行安装即可。黑色界面,非常酷炫。

          Apifox 界面

          接口文档?

          阅读 《开发指南 —— 接口文档》 呀~~

          # 3. 基础设施(必选)

          本小节的基础设施【必须】安装,否则项目无法启动。

          # 3.1 初始化 MySQL

          友情提示?

          如果你是 PostgreSQL、Oracle、SQL Server、DM 等其它数据库,也是可以的。

          因为我主要使用 MySQL数据库为主,所以其它数据库的 SQL 文件可能存在滞后,可以加入 用户群 反馈。

          补充说明?

          由于工作较忙,暂时未拆分到多个数据库,可以按照前缀自行处理:

          • system_ 前缀,属于 yudao-module-system 服务
          • infra_ 前缀,属于 yudao-module-infra 服务

          项目使用 MySQL 存储数据,所以需要启动一个 MySQL 服务,建议使用 5.7 版本。

          ① 创建一个名字为 ruoyi-vue-pro 数据库,【只要】 执行对应数据库类型的 sql (opens new window) 目录下的 ruoyi-vue-pro.sql SQL 文件,进行初始化。

          导入 MySQL 数据库

          ② 默认配置下,MySQL 需要启动在 3306 端口,并且账号是 root,密码是 123456。如果不一致,需要修改 application-local.yaml 配置文件。

          修改配置文件


          如果是 MySQL 数据库,不需要看 ③、④ 两点!!!

          ③ 【如果是 PostgreSQL、Oracle、SQL Server 数据库】,修改 yudao-spring-boot-starter-mybatis 模块的 pom.xml 文件,将对应的 JDBC Driver 的 optional 移除。如下图所示:

          数据库依赖

          注意,需要使用 IDEA 刷新下 Maven 的依赖。

          ④ 【如果是 DM 达梦数据库】建议先使用 MySQL 跑通,然后再阅读 《达梦数据库专属》 文档。

          # 3.2 初始化 Redis

          项目使用 Redis 缓存数据,所以需要启动一个 Redis 服务。

          不会安装的胖友,可以选择阅读下文,良心的艿艿。

          • Windows 安装 Redis 指南:http://www.iocoder.cn/Redis/windows-install (opens new window)
          • Mac 安装 Redis 指南:http://www.iocoder.cn/Redis/mac-install (opens new window)

          默认配置下,Redis 启动在 6379 端口,不设置账号密码。如果不一致,需要修改 application-local.yaml 配置文件。

          修改配置文件

          # 3.3 初始化 Nacos

          项目使用 Nacos 作为注册中心和配置中心,参考 《芋道 Nacos 极简入门》 (opens new window) 文章,进行安装,只需要看该文的 「2. 单机部署(最简模式)」 即可。

          安装完成之后,需要创建 dev 命名空间,如下图所示:

          创建  命名空间

          Nacos 拓展学习资料:

          • 《芋道 Spring Cloud Alibaba 配置中心 Nacos 入门》 (opens new window) 对应 labx-05-spring-cloud-alibaba-nacos-config (opens new window)
          • 《芋道 Spring Cloud Alibaba 注册中心 Nacos 入门》 (opens new window) 对应 labx-01-spring-cloud-alibaba-nacos-discovery (opens new window)

          # 4. 基础设施(可选)

          本小节的基础设施【可选】安装,不影响项目的启动,可在项目启动后再安装。

          # 4.1 RocketMQ

          项目使用 RocketMQ 作为消息中心和事件总线,参考 《芋道 RocketMQ 极简入门》 (opens new window) 文章,进行安装,只需要看该文的 「2. 单机部署」 即可。

          RocketMQ 拓展学习资料:

          • 《芋道 Spring Cloud Alibaba 消息队列 RocketMQ 入门》 (opens new window) 对应 labx-06-spring-cloud-stream-rocketmq (opens new window)
          • 《芋道 Spring Cloud Alibaba 事件总线 Bus RocketMQ 入门》 (opens new window) 对应 labx-06-spring-cloud-stream-rocketmq (opens new window)
          • 《性能测试 —— RocketMQ 基准测试》 (opens new window)

          # 4.2 XXL-Job

          ① 项目使用 XXL-Job 作为定时任务,参考 《芋道 XXL-Job 极简入门》 (opens new window) 文章,进行安装,只需要看该文的 「4. 搭建调度中心」 即可。

          注意,需要修改 application.yaml 配置文件,修改 server.port 为 9090。

          ② 默认配置下,本地 local 环境的定时任务是关闭的,避免控制台一直报错报错。如果要开启,请参考 《微服务手册 —— 定时任务》 文档。

          # 4.3 Seata

          TODO 接入中,提供实战案例 ing

          Seata 拓展学习资料:

          • 《芋道 Spring Cloud Alibaba 分布式事务 Seata 入门 》 (opens new window) 对应 对应 labx-17 (opens new window)

          # 4.4 Sentinel

          TODO 接入中,提供实战案例 ing

          Sentinel 拓展学习资料:

          • 《芋道 Spring Cloud Alibaba 服务容错 Sentinel 入门 》 (opens new window) 对应 labx-04-spring-cloud-alibaba-sentinel (opens new window)

          # 4.5 Elasticsearch

          TODO 接入中,提供实战案例 ing

          Elasticsearch 拓展学习资料:

          • 《芋道 Spring Boot Elasticsearch 入门》 (opens new window)
          • 《芋道 ELK(Elasticsearch + Logstash + Kibana) 极简入门》 (opens new window)

          # 5. 启动后端项目

          # 5.1 编译项目

          使用 IDEA 打开 Terminal 终端,在根目录下直接执行 mvn clean install package '-Dmaven.test.skip=true' 命令,将项目进行初始化的打包,预计需要 1 分钟左右。成功后,控制台日志如下:

          [INFO] BUILD SUCCESS
          [INFO] ------------------------------------------------------------------------
          [INFO] Total time: 01:12 min
          [INFO] Finished at: 2022-02-12T09:52:38+08:00
          [INFO] Final Memory: 250M/2256M
          [INFO] ------------------------------------------------------------------------
          

          Maven 补充说明:

          ① 只有首次需要执行 Maven 命令,解决基础 pom.xml 文件不存在,导致报 BaseDbUnitTest 类不存在的问题。

          ② 如果执行报 Unknown lifecycle phase “.test.skip=true” 错误,使用 mvn clean install package -Dmaven.test.skip=true 即可。

          # 5.2 启动 gateway 服务

          执行 GatewayServerApplication (opens new window) 类,进行启动。

          启动还是报类不存在?

          可能是 IDEA 的 bug,点击 [File -> Invalidate Caches] 菜单,清空下缓存,重启后在试试看。

          启动  服务

          启动完成后,使用浏览器访问 http://127.0.0.1:48080 (opens new window) 地址,返回如下 JSON 字符串,说明成功。

          友情提示:注意,默认配置下,网关启动在 48080 端口。

          {"code":404,"data":null,"msg":null}
          

          如果报 “Command line is too long” 错误,参考 《Intellij IDEA 运行时报 Command line is too long 解决方法 》 (opens new window) 文章解决,或者直接点击 YudaoServerApplication 蓝字部分!

          “Command line is too long” 错误

          # 5.3 启动 system 服务

          执行 SystemServerApplication (opens new window) 类,进行启动。

          启动  服务

          启动完成后,使用浏览器访问 http://127.0.0.1:48081/admin-api/system/ (opens new window) 和 http://127.0.0.1:48080/admin-api/system/ (opens new window) 地址,都返回如下 JSON 字符串,说明成功。

          友情提示:注意,默认配置下,yudao-module-system 服务启动在 48081 端口。

          {"code":401,"data":null,"msg":"账号未登录"}
          

          # 5.3 启动 infra 服务

          执行 InfraServerApplication (opens new window) 类,进行启动。

          启动  服务

          启动完成后,使用浏览器访问 http://127.0.0.1:48082/admin-api/infra/ (opens new window) 和 http://127.0.0.1:48080/admin-api/infra/ (opens new window) 地址,都返回如下 JSON 字符串,说明成功。

          友情提示:注意,默认配置下,yudao-module-infra 服务启动在 48082 端口。

          {"code":401,"data":null,"msg":"账号未登录"}
          

          # 5.4 启动 bpm 服务

          参见 《工作流手册》 文档。

          # 5.5 启动 report 服务

          参见 《大屏手册》 文档。

          # 5.6 启动 pay 服务

          参见 《支付手册》 文档。

          # 5.7 启动 mp 服务

          参见 《公众号手册》 文档。

          # 5.8 启动 mall 服务

          参见 《商城手册》 (opens new window) 文档。

          # 6. 启动前端项目【简易】

          友情提示:这是可选步骤,想要完整启动前端,可以直接看「7. 启动前端项目【完整】」小节噢!

          在 yudao-ui-static (opens new window) 项目中,提前编译好了前端项目的静态资源,可以直接体验和使用。操作步骤如下:

          ① 克隆 https://gitee.com/yudaocode/yudao-ui-static (opens new window) 项目,运行 UiConfiguration 类,进行启动。

          演示项目

          ② 访问 http://127.0.0.1:2048/admin-ui-vue2/ (opens new window) 地址,可以看到 Vue2 管理后台。

          ② 访问 http://127.0.0.1:2048/admin-ui-vue3/ (opens new window) 地址,可以看到 Vue3 + element-plus 管理后台。

          ③ 访问 http://127.0.0.1:2048/admin-ui-vben/ (opens new window) 地址,可以看到 Vue3 + vben(ant-design-vue) 管理后台。

          补充说明:

          前端项目是不定期编译,可能不是最新版本。

          如果需要最新版本,请继续往下看。

          # 7. 启动前端项目【完整】

          参考 《快速启动(前端项目)》 文档

          # 666. 彩蛋

          至此,我们已经完成了项目 ruoyi-vue-pro (opens new window) 的启动。

          胖友可以根据自己的兴趣,阅读相关源码。如果你想更快速的学习,可以看看 《视频教程 》 教程哟。

          架构图

          后面,艿艿会花大量的时间,继续优化这个项目。同时,输出与项目匹配的技术博客,方便胖友更好的学习与理解。

          还是那句话,😆 为开源继绝学,我辈义不容辞!


          嘿嘿嘿,记得一定要给 https://github.com/YunaiV/yudao-cloud (opens new window) 一个 star,这对艿艿真的很重要。

          Star 一波

          功能列表
          快速启动(前端项目)

          ← 功能列表 快速启动(前端项目)→

          Theme by Vdoing | Copyright © 2019-2024 芋道源码 | MIT License
            ×