文章目录
- ruoyi微服务技术栈
- ruoyi项目环境
- 创建新模块????
- 代码自动生成????
- 登录鉴权原理
- gateway网关规则
官方文档:https://doc.ruoyi.vip/ruoyi-cloud/
- RuoYi-Cloud项目框架:
- 后端
com.ruoyi
├── ruoyi-ui // 前端框架 [80]
├── ruoyi-gateway // 网关模块 [8080]
├── ruoyi-auth // 认证中心 [9200]
├── ruoyi-api // 接口模块
│ └── ruoyi-api-system // 系统接口
├── ruoyi-common // 通用模块
│ └── ruoyi-common-core // 核心模块
│ └── ruoyi-common-datascope // 权限范围
│ └── ruoyi-common-datasource // 多数据源
│ └── ruoyi-common-log // 日志记录
│ └── ruoyi-common-redis // 缓存服务
│ └── ruoyi-common-security // 安全模块
│ └── ruoyi-common-swagger // 系统接口
├── ruoyi-modules // 业务模块
│ └── ruoyi-system // 系统模块 [9201]
│ └── ruoyi-gen // 代码生成 [9202]
│ └── ruoyi-job // 定时任务 [9203]
│ └── ruoyi-file // 文件服务 [9300]
├── ruoyi-visual // 图形化管理模块
│ └── ruoyi-visual-monitor // 监控中心 [9100]
├──pom.xml // 公共依赖
- 前端
├── build // 构建相关
├── bin // 执行脚本
├── public // 公共文件
│ ├── favicon.ico // favicon图标
│ └── index.html // html模板
├── src // 源代码
│ ├── api // 所有请求
│ ├── assets // 主题 字体等静态资源
│ ├── components // 全局公用组件
│ ├── directive // 全局指令
│ ├── layout // 布局
│ ├── router // 路由
│ ├── store // 全局 store管理
│ ├── utils // 全局公用方法
│ ├── views // view
│ ├── App.vue // 入口页面
│ ├── main.js // 入口 加载组件 初始化等
│ ├── permission.js // 权限管理
│ └── settings.js // 系统配置
├── .editorconfig // 编码格式
├── .env.development // 开发环境配置
├── .env.production // 生产环境配置
├── .env.staging // 测试环境配置
├── .eslintignore // 忽略语法检查
├── .eslintrc.js // eslint 配置项
├── .gitignore // git 忽略项
├── babel.config.js // babel.config.js
├── package.json // package.json
└── vue.config.js // vue.config.js
ruoyi微服务技术栈
- 网关:Gateway
- 远程调用:Ribbon/Feign
- 注册中心:Nacos Discovery
- 熔断降级:Sentinel
- 配置中心:Nacos Config
- 链路追踪:Sleuth+ZipKin/SkyWalking(没有集成,需要自己加)
ruoyi项目环境
JDK >= 1.8 (推荐1.8版本)
Mysql >= 5.7.0 (推荐5.7版本)
Redis >= 3.0
Maven >= 3.0
Node >= 10
nacos >= 1.1.0 (ruoyi-cloud >= 3.0.0需要下载nacos >= 2.x.x版本)
sentinel >= 1.6.0
创建新模块????
- 创建api-test
- 参考复制maven包
- 核心业务模块modules-test
- 记得在菜单管理中添加一个主导航栏(xx管理)
- 参考ruoyi-system复制maven包、bootstrap.yml
- nacos克隆ruoyi-system-dev.yml,配置yml
- gateway的yml添加网关配置
代码自动生成????
- 创建数据表
create table test_user(
id int primary key auto_increment,
name varchar(11),
password varchar(11)
)
- 系统工具—>代码生成
生成代码,非常牛逼!!!
- 编辑:
- 点击生成代码
- 解压
main(Java后端代码)
vue(前端代码)
testMenu.sql
登录鉴权原理
有2种模式:
- 外部鉴权:客户端访问服务端(微服务),以JWT令牌为判断依据,有且合法放行,没有或不合法
- 内部鉴权:上游微服务访问下游微服务,以请求头标记:from-source=:inner有无位依据,有放行,没有拒绝
gateway网关规则
前端发起所有请都统一经过网关,再借由网关路由统一转发。
- 访问ruoyi–file微服务路径规则:http://localhost:80/dev-api/file/**
- 访问ruoyi-.gen微服务路径规则:http://localhost:80/dev-api/code/**
- 访问ruoyi-.job微服务路径规则:http://localhost:80/dev-api/schedule/**
- 访问ruoyi–system微服务路径规则:http://localhost:80/dev-api/system/**
- 访问ruoyi–auth微服务路径规则:http://localhost:80/dev-api/auth/**