根据Ruoyi做二开

Ruoyi二开

  • 前言
  • 菜单
  • 代码生成
  • 新建微服务
    • 网关添加微服务的路由
  • vue页面和对应的js文件
  • js中方法的url和controller中方法的url
  • 总结

前言

  • 之前写过一篇文章,若依微服务版本搭建,超详细,就介绍了怎么搭建若依微服务版本,我们使用若依就是为了简化我们的开发,减少开发周期的,这篇文章就会介绍怎么使用若依进行二开。
  • 若依提供了很多个版本,其实这些版本的使用方式是完全一致的,只是架构不同,所以这篇文章也适用于若依的其他版本。

菜单

  • 我们打开若依的首页,就可以看到左侧的菜单,我们不需要知道具体是怎么实现的,只需要知道怎么去使用即可。
  • 我们所看到的以下一级菜单在Ruoyi里叫做目录。
    在这里插入图片描述
  • 点击系统管理>菜单管理,就可以添加菜单或者目录,我们所看到的一级菜单,其实是目录。我们自己添加目录时候可以根据已有的目录进行填写,需要注意的是路由地址,一般是目录名称的英文名。
    在这里插入图片描述
  • 添加菜单,需要注意路由地址,组件路径和权限字符,可以随意指定,但是最好按照若依的格式来。路由地址:菜单的英文名;组件路径对应了一个页面(ruoyi-ui下的src目录下的views中),按照规范来应该是:目录名/菜单名/页面名(一般都是index);权限字符是用于鉴权的,使用的是Shiro的@RequiresPermissions进行鉴权,按照规范来应该是:目录名:菜单名:list(因为进入页面其实展示的就是列表,执行的是list方法,所以是list)。
    在这里插入图片描述
  • 添加完菜单和目录之后,要想点击目录会显示页面,还得创建组件路径对应的页面(ruoyi-ui/src/views下)。
    在这里插入图片描述
    【温馨提示】:添加了页面之后记得重启前端,不然无效。

代码生成

  • 将我们自己设计好的数据库表放到rouyi-cloud库中,点击首页的系统工具>代码生成,点击导入,选择你要生成代码的表
    在这里插入图片描述
  • 你想要生成代码的表被选择后就会出现在列表中,你可以对这个表进行如上图所示的几个操作。
  • 代码生成会生成实体类,三层架构,sql,js和页面,点击预览可以显示信息,并且你可以复制。
    在这里插入图片描述
  • 点击编辑可以编辑基本信息,字段信息和生成信息,你可以根据你的需求更改。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 【注意】上述三处(基本信息,字段信息,生成信息中)的必填项都填了之后点击提交才能校验通过。

新建微服务

  • 我们根据ruoyi微服务版本进行二开,肯定是需要新建微服务的,上述的代码其实就相当于一个微服务的各种结构,但是创建新的微服务有以下几个需要注意的地方。

网关添加微服务的路由

  • 我们都知道微服务框架下所有的请求都是从前端打到后端的网关,再由网关使用负载均衡进行路由分发的,那么网关如何知道将请求转发到哪个微服务就要在网关的配置文件中配置。
  • 若依的网关配置在nacos中的ruoyi-gateway-dev.yml文件中进行配置,代码生成不了,我们可以仿照若依的路由配置方式进行配置。【整理的例子是ruoyi-basic服务】
spring:redis:host: localhostport: 6379password: 123456cloud:gateway:discovery:locator:lowerCaseServiceId: trueenabled: trueroutes:# 认证中心- id: ruoyi-authuri: lb://ruoyi-authpredicates:- Path=/auth/**filters:# 验证码处理- CacheRequestFilter- ValidateCodeFilter- StripPrefix=1=========================以上是若依自己原有的配置# 基础服务- id: ruoyi-basic #id就是服务名/模块名uri: lb://ruoyi-basic   # uri:lb://是一个通用写法,意思是通过负载均衡访问后面的服务predicates:- Path=/basic/**   # 断言,也就是访问ruoyi-basic这个服务下的接口时会加上/basic这个前缀filters:- StripPrefix=1 # 去掉前缀后访问实际路径,上面的断言只有一个前缀/basic所以是1
  • 为什么前端的请求都打到了网关呢,是在vue.config.js中配置的,8080就是网关
    在这里插入图片描述

vue页面和对应的js文件

  • vue页面和对应的js文件都是代码生成的,但是他们的路径可能不太符合你的要求,但是随意的挪动位置就会导致各种错误,vue页面和js文件是一一对应的。
  • 比如我自己添加的一个页面,src/views/basic/account/index.vue(这个页面的路径就对应添加菜单时的组件路径basic/account/index),他引入的js路径是这样的"@/api/basic/account/account" 其实这个js就是src/api/basic/account/account.js,.js是省略的了。可以看到@对应的就是src目录,这是vue的默认配置,当然你也可以在vue.config.js中配置。
    在这里插入图片描述
    在这里插入图片描述

用@表示src

js中方法的url和controller中方法的url

  • js中的请求其实就是打到后端controller的,但是由于网关的配置,他们的地址会有细小的差别。
  • 比如account.js中的这个请求地址是/basic/account/list,这个其实打到的是ruoyi-basic服务下的/account/list接口,前面多了一个/basic就是因为微服务在网关的路由上配置的断言。【如果断言是 -Path=/ruoyi/basic/**,那么- StripPrefix=2才行,这里的js中请求地址得是/ruoyi/basic/account/list才行】
    在这里插入图片描述
  • 前端请求地址 http://localhost:81/dev-api/basic/account/list?pageNum=1&pageSize=10,后端接口地址http://localhost:微服务的端口号/account/list

总结

  • 其实知道上述的操作步骤就能满足一般的开发需求,节省开发时间了,ruoyi的认证和授权是基于SpringSecurity+JWT+OAuth2的,所以这方面根本不用考虑,我们只需要在这个框架之上写我们的核心业务即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/475479.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RocketMQ订阅关系不一致和不能消费时如何排查?

订阅关系不一致 调整任意一个实例的订阅关系和另一个保持一致 消费者不能消费消息 它是最常见的问题之一,也是每个消息队列服务都会遇到的问题 1.确认哪个消息未消费。在这时消费者至少需要手机消息id、消息key、消息发送时间段三者之一 2.确认消息是否发送成功…

【plt.bar绘制条形图】:从入门到精通,只需一篇文章!【Matplotlib】

【📊plt.bar绘制条形图】:从入门到精通,只需一篇文章!【Matplotlib】 利用Matplotlib进行数据可视化示例 🌵文章目录🌵 🔍 一、初识plt.bar:条形图的基本概念💡 二、plt.…

Sqoop 入门基础

简介 Sqoop(SQL to Hadoop)是一个开源工具,用于在关系型数据库和Hadoop之间传输数据。它提供了一种快速高效的方式,将数据从关系型数据库导入到Hadoop集群进行分析,并支持将Hadoop集群中的数据导出到关系型数据库中。本…

dm_control 翻译: Software and Tasks for Continuous Control

dm_control: Software and Tasks for Continuous Control dm_control:连续控制软件及任务集 文章目录 dm_control: Software and Tasks for Continuous Controldm_control:连续控制软件及任务集Abstract1 Introduction1 引言1.1 Software for research1…

黑猫带你学NandFlash第2篇:NandFlash部分相关名词释义

1 前言 1.1 声明 本文依据ONFI5.1、网络资料及个人工作经验整理而成,如有错误请留言。 文章为付费内容,已加入原创侵权保护,禁止私自转载及抄袭。 文章所在专栏:《黑猫带你学:NandFlash详解》 1.2 本文背景 本文关…

第二篇【传奇开心果系列】Python的文本和语音相互转换库技术点案例示例:深度解读pyttsx3支持多种语音引擎

传奇开心果短博文系列 系列短博文目录Python的文本和语音相互转换库技术点案例示例系列 短博文目录前言一、三种语音引擎支持介绍和示例代码二、SAPI5引擎适用场景介绍和示例代码三、nsss引擎适用场景介绍和示例代码四、eSpeak适用场景介绍和示例代码五、归纳总结 系列短博文目…

【EI会议征稿通知】第五届信息科学与并行、分布式处理国际学术会议(ISPDS 2024)

第五届信息科学与并行、分布式处理国际学术会议(ISPDS 2024) 2024 5th International Conference on Information Science, Parallel and Distributed Systems 第五届信息科学与并行、分布式处理国际学术会议(ISPDS 2024)定于20…

C语言每日一题(59)左叶子之和

题目链接 力扣网404 左叶子之和 题目描述 给定二叉树的根节点 root ,返回所有左叶子之和。 示例 1: 输入: root [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 2…

【漏洞复现-通达OA】通达OA report_bi存在前台SQL注入漏洞

一、漏洞简介 通达OA(Office Anywhere网络智能办公系统)是由北京通达信科科技有限公司自主研发的协同办公自动化软件,是与中国企业管理实践相结合形成的综合管理办公平台。通达OA为各行业不同规模的众多用户提供信息化管理能力,包括流程审批、行政办公、日常事务、数据统计…

测试架构师必备技能 —— Nginx安装部署实战

Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的免费开源Web和 反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。在高并发访问的情况下,Nginx是Apache服务器不错的替代品。官网数据显示每秒TPS高达50W左右。本文…

写一个修仙狗血穿越短剧剧本

剧本名称:《穿越修仙之路》 角色: 小明(现代青年,穿越到修仙世界)雪儿(修仙世界中的美女修士)老者(修仙世界的神秘老者)黑衣人(修仙世界的反派角色&#xff…

洛谷 P1150 Peter 的烟

参考代码and代码解读 #include<iostream> using namespace std; int main() { int n,k,nonu; //n烟的数量&#xff0c;k需要多少根烟头换一支烟&#xff0c;nonu记录烟头的个数 cin>>n>>k; int sumn; //一开始就能吸n支烟 nonusum; …