若依框架(前后端分离版本)总结
Posted 我那个果味
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了若依框架(前后端分离版本)总结相关的知识,希望对你有一定的参考价值。
一、官方介绍
1、仔细阅读官方文档
我觉得在学习任何技术 或者框架之前 一定要先仔细浏览阅读人家的官方文档,所以这一点很重要。
其实官网文档已经给我们做了很详细的介绍,我个人认为这就是只是一个工具而已,人家已经做好很多东西,而我们要做的就是去熟悉人家的工具,并且吸收人家的设计思想,然后变成自己的东西。再者基础上去开发。所以还是自我做个总结吧。
2.若依框架的下载及使用
官方文档已经写的很详细了。
(1)环境部署 记得装好node
(2)后端运行
- 记得先导入数据库脚本。
- 修改配置文件。(数据库 数据源的配置以及服务端口 默认8080)
- 因为项目中用到了redis 所以我们还要下载并启动 redis(默认端口6379)
配置文件在 ruoyi-admin 模块下 如图:
application.yml-----项目的相关配置
application-druid.yml----项目数据源的配置
出现下图表示启动成功
(♥◠‿◠)ノ゙ 若依启动成功 ლ(´ڡ`ლ)゙
.-------. ____ __
| _ _ \\ \\ \\ / /
| ( ' ) | \\ _. / '
|(_ o _) / _( )_ .'
| (_,_).' __ ___(_ o _)'
| |\\ \\ | || |(_,_)'
| | \\ `' /| `-' /
| | \\ / \\ /
''-' `'-' `-..-'
(3)前端运行
# 进入项目目录 ruoyi-ui
cd ruoyi-ui
# 安装依赖
npm install
# 强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug,
可以通过重新指定 registry 来解决 npm 安装速度慢的问题。
npm install --registry=https://registry.npmmirror.com
# 本地开发 启动项目
npm run dev
在启动成功后会自动弹出登录页面 默认账户/密码 admin/admin123
若能正确展示登录页面,并能成功登录,菜单及页面展示正常,则表明环境搭建成功。
二、了解若依前后端项目结构
后端结构:
com.ruoyi
├── common // 工具类
│ └── annotation // 自定义注解
│ └── config // 全局配置
│ └── constant // 通用常量
│ └── core // 核心控制
│ └── enums // 通用枚举
│ └── exception // 通用异常
│ └── filter // 过滤器处理
│ └── utils // 通用类处理
├── framework // 框架核心
│ └── aspectj // 注解实现
│ └── config // 系统配置
│ └── datasource // 数据权限
│ └── interceptor // 拦截器
│ └── manager // 异步处理
│ └── security // 权限控制
│ └── web // 前端控制
├── ruoyi-generator // 代码生成(可移除)
├── ruoyi-quartz // 定时任务(可移除)
├── ruoyi-system // 系统代码
├── ruoyi-admin // 后台服务
├── ruoyi-xxxxxx // 其他模块
前端结构:
├── build // 构建相关
├── bin // 执行脚本
├── public // 公共文件
│ ├── favicon.ico // favicon图标
│ └── index.html // html模板
│ └── robots.txt // 反爬虫
├── src // 源代码
│ ├── api // 所有请求
│ ├── assets // 主题 字体等静态资源
│ ├── components // 全局公用组件
│ ├── directive // 全局指令
│ ├── layout // 布局
│ ├── plugins // 通用方法
│ ├── 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
数据库表结构:
每个表的功能
gen_table,gen_table_column
自动生成代码的两张表,读取mysql中需要生成代码的表,加载到这两个模板表中。
一个是生成代码后的包配置,一个是列配置。
sys_config
系统参数表,系统常用的一些参数,包括密码,皮肤,主题之类的。
sys_dept
部门表,部门id,父id,祖级id必须保持一致。方便通过一个部门,找到该部门属于哪个分公司和总公司。
sys_dict_data
字典数据表
通过dict_type字段和字典类型表进行关联。
sys_dict_type
字典类型表
sys_job
计时任务表
sys_job_log
计时任务日志表
sys_logininfo
用户登录日志表
sys_menu
菜单表
sys_notice
系统通知表,用来进行一些系统通知,比如版本更新之类的
sys_oper_log
系统操作日志表
sys_post
岗位表
sys_role
角色表
用来控制用户的权限。
role_key这个字段不能重复,必须是英文。
sys_user
用户表
sys_role_dept
角色部门关联表
用来进行解耦
sys_role_menu
角色菜单关联表
每个角色拥有不同的菜单操作权限。
sys_user_post
用户岗位关联表
该用户属于哪个岗位
sys_user_role
用户角色关联表
表关系
RBAC(基于角色的访问控制)
在 RBAC 中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便。
若依前后端分离版本(RouYi-vue)框架使用Redis集群
目录
更改application.yml配置,注释掉redis下面的host和port,增加cluster节点及其子节点nodes,node值为以逗号分隔的多个节点配置,如ip1:port1,ip2:port2,ip3:port3, 也可以用每行一个配置的形式(配置更清晰),每行配置格式如:- ip1:port1。
1、集群模式配置
redis:
cluster:
nodes:
- 10.10.10.10:6380
- 10.10.10.10:6381
- 10.10.10.10:6382
- 10.10.10.10:6383
- 10.10.10.10:6384
- 10.10.10.10:6385
# 数据库索引
database: 1
# 密码
password: Founder@123
# 连接超时时间
timeout: 10s
jedis:
pool:
# 连接池中的最小空闲连接
min-idle: 0
# 连接池中的最大空闲连接
max-idle: 8
# 连接池的最大数据库连接数
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
2、单机模式配置
redis:
# 地址
host: 172.19.57.134
# 端口,默认为6379
port: 6379
# 数据库索引
database: 1
# 密码
password: *****
# 连接超时时间
timeout: 10s
lettuce:
pool:
# 连接池中的最小空闲连接
min-idle: 0
# 连接池中的最大空闲连接
max-idle: 8
# 连接池的最大数据库连接数
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
以上是关于若依框架(前后端分离版本)总结的主要内容,如果未能解决你的问题,请参考以下文章
若依前后端分离版本(RouYi-vue)框架使用Redis集群