若依cloud(RuoYi-Cloud)新增业务模块和功能模块增删改查演示

news2024/11/30 4:46:57

前言

看了几篇文章感觉都不太满意,索性自己来写一篇。

一、后端

后端新建业务模块流程大致如下:

1、后端新建一个(在ruoyi-module模块下)业务模块,仿照已有的模块将此模块配置好,例如仿照系统模块:
	1.1、将pom.xml文件配置好;
	1.2、将bootstrap.yml文件配置好;
	1.3、将启动类配置好;
	1.4、将nacos上的属于该模块的配置文件配置好;
	1.5、将网关模块配置好;
	1.6、启动测试;

看一下目录结构,business就是我们自己的业务模块:
在这里插入图片描述

1.0 新建业务模块

就是在ruoyi-module模块下新建一个springboot工程模块,大家既然都学到cloud了,我相信这一步也不用多说了。这里要注意一点,就是在ruoyi-module模块的pom.xml文件中,一定得有子模块的说明,否则后面会访问不了。
在这里插入图片描述

1.1 将pom.xml文件配置好

我们可以直接将ruoyi-system模块的内容复制过来,改一下<artifactId><description>就行了:
在这里插入图片描述

改成我们自己业务模块的之后:
在这里插入图片描述

1.2 将bootstrap.yml文件配置好

ruoyi-system模块resource目录下的图中三个文件复制到business模块resource目录下:
在这里插入图片描述

banner.txt文件可以不用修改:
在这里插入图片描述

logback.xml文件修改日志存放路径
在这里插入图片描述

bootstrap.yml文件修改端口应用名称
在这里插入图片描述

1.3 将启动类配置好

仿造系统模块,将启动类上面的注解复制到business模块的启动类上:
在这里插入图片描述

在这里插入图片描述

1.4 将nacos上的属于该模块的配置文件配置好

在nacos的配置中心新建一个business模块的配置文件,文件名格式为:

远程配置文件名为:name-active.file-extension ,这里为business-dev.yml

系统模块的配置文件复制到business模块的配置文件中,修改mybatis的包所在位置:
在这里插入图片描述

1.5 将网关模块配置好

在网关模块的配置文件中,新增加一个转发规则:
在这里插入图片描述

1.6 启动测试

我么可以自己写一个controller来测试一下:

@RestController
//仿造系统模块,继承BaseController 
public class TestController extends BaseController {

    @RequestMapping("/test")
    public String test(){
        return "业务模块";
    }
}

启动之后访问business模块的指定端口的这个接口地址,发现能访问成功:
在这里插入图片描述

我们接着访问网关模块的指定端口的加business前缀的接口地址:
在这里插入图片描述

发现访问失败,这是因为我们没有登录,所以不能通过网关访问这个接口地址,我们可以把这个接口地址加到网关的白名单中,就能正常访问了。在网管模块的配置文件中:
在这里插入图片描述

访问成功:
在这里插入图片描述

到此为止,后端的结构代码添加完毕!

二、设计数据表

ry-cloud这个数据库中,新建我们业务模块需要的数据表,我这里新建一张数据表为business_device,如图:
在这里插入图片描述

三、使用代码生成器生成后端三层代码和前端vue代码

代码生成流程如下:

3、启动代码生成器准备生成代码:
	3.1、启动代码生成器服务,打开代码生成器页面;
	3.2、导入新建的表格,编辑生成信息,选中表格点击生成代码;
	3.3、将生成的前后端代码文件复制到对应地方,并且将sql语句在ry-cloud数据库中执行;
	3.4、重启服务之后,查看新增模块是否完成;

3.1 启动代码生成器服务

想要使用代码生成器的话,我们需要启动这个服务,服务名称为RuoYiGenApplication
在这里插入图片描述

3.2 编辑代码生成信息

服务启动之后,进入若依系统里面,点击系统工具下的代码生成菜单,进入代码生成页面,如图:
在这里插入图片描述

点击导入按钮,选择我们新建的数据表,点击确定,导入待生成代码的数据表:
在这里插入图片描述

我们点击预览,可以预设生成的代码是否符合我们的需要,如图:
在这里插入图片描述

我这里发现,包名不对劲,所以点击编辑,编辑生成代码的信息,基本信息和字段信息都没问题,需要修改生成信息,修改后的生成信息如图:
在这里插入图片描述
这个上级菜单选项就是指你新的模块往哪个菜单下面挂,如果不添加到菜单里面的话,就只能通过在浏览器输入链接访问,这是不切实际的事情,我这里先留空,自己去菜单管理中添加一级目录之后,再回来修改。

进入系统管理的菜单管理页面,点击新增按钮,弹出新增框,填写一级目录信息如图:
在这里插入图片描述

再次回来修改生成信息,把上级菜单设置为我们新增的一级目录:
在这里插入图片描述

3.3 生成代码并复制到对应的位置

点击生成代码按钮,将生成的代码保存到本地,生成文件目录结构如下:
在这里插入图片描述

main文件里面是后端的三层java代码,vue里面是前端的vue代码,sql文件里面是设置菜单结构的sql数据。

分别按照他给的结构,把对应的前后端代码复制到对应的位置,这个我就不做说明了(用IDEA的话,后端代码可能会爆红,只要能正常启动不报错,都不用理会,如果报错的话,先清理一下maven再说,如果还报错那就具体问题具体分析)。将sql文件拿到ry-cloud数据库运行即可。

四、配置页面路由

4、前端将新增的功能页等配置配置完全:
	4.1、配置新页面路由;(看情况,有时候可能不需要配置);

这一步呢,很多情况下是不需要做的,只有真的找不到页面的时候才需要自己配置。我们先将前端项目停止,然后重新运行(这一步是必须的,否则会一直提示找不到路由,你还一直以为是自己路由没配置对,其实压根不用配置路由)

重启之后,点击新增的功能菜单,正常显示页面,无需配置路由,如图:
在这里插入图片描述

如果提示找不到路由的话,请看这篇博客:https://blog.csdn.net/alikami/article/details/129195607

五、测试功能是否正常

这一步就是测试增删改查功能是否正常,我不做演示了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

6、PHP语法要点(1)

PHP的语法跟C语言还是类似的。 1、变量不用定义即可直接使用。 2、函数外定义的变量为全局变量。global 关键字用于函数内访问全局变量。 3、static 用于保持函数内局部变量的值。但在函数外依然不能访问。 4、PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。…

GptFu0k——ChatGpt连接源爬取器

最近ChatGPT的热度下去了&#xff0c;但是我相信&#xff0c;很多真正需要的人还是一直在用的&#xff0c;为了解决ChatGPT账号的问题还有网络连接问题&#xff0c;通常会花费大量时间去寻找&#xff0c;为了解决这个棘手的问题&#xff0c;GptFu0k横空出世&#xff0c;全网爬取…

提高LLaMA-7B的数学推理能力

概述 这篇文章探讨了利用多视角微调方法提高数学推理的泛化能力。数学推理在相对较小的语言模型中仍然是一个挑战&#xff0c;许多现有方法倾向于依赖庞大但效率低下的大语言模型进行知识蒸馏。研究人员提出了一种避免过度依赖大语言模型的新方法&#xff0c;该方法通过有效利…

Ctfshow Crypto全

目录 各种各样的编码 crypto0(凯撒) crypto2(jsfuck) crypto3(aaencode) crypto4(知p q e求d) crypto5(知p q e c求d) crypto6(Rabbit) crypto7(Ook!) crypto8(BrainFuck) crypto9(serpent) crypto10(quoted-printable) crypto11(md5) crypto12(埃特巴什码) cryp…

AI Chat 设计模式:8. 门面(外观)模式

本文是该系列的第八篇&#xff0c;采用问答式的方式展开&#xff0c;问题由我提出&#xff0c;答案由 Chat AI 作出&#xff0c;灰色背景的文字则主要是我的一些思考和补充。 问题列表 Q.1 请介绍一下门面模式A.1Q.2 该模式由哪些角色组成呢A.2Q.3 举一个门面模式的例子A.3Q.4…

vue的computed复习

1.复杂 data 的处理方式 三个案例&#xff1a;  案例一&#xff1a;我们有两个变量&#xff1a; firstName 和 lastName &#xff0c;希望它们拼接之后在界面上显示&#xff1b;  案例二&#xff1a;我们有一个分数&#xff1a; score  当 score 大于 60 的时候&#xf…

云拨测全面升级丨单次拨测低至 0.001 元

作者&#xff1a;少焉 随着云原生、微服务技术的发展&#xff0c;可观测需求变得越来越强烈&#xff0c;作为可观测技术的重要能力之一&#xff0c;云拨测&#xff08;Synthetics Monitor&#xff09;由于其零侵入、开箱即用、主动式监测手段&#xff0c;也受到很多用户的青睐…

arcgis建筑物平均高度

主要用到相交和属性表的汇总功能。 路网 建筑物栋 相交结果 右键&#xff0c;bh列汇总 原始块有392&#xff0c;这里只有389&#xff0c;说明有的地块没有建筑&#xff0c;所以应该将表连接到原始街区上检查是否合理&#xff0c;以及随机验证一个结果是否正确。 连接结果&…

【问题总结】基于docker-compose实现nginx转发redis

目录&#xff1a; 文章目录 需求简介&#xff1a;Q1: nginx的http模块和http模块有什么不同Q2: 可以都使用stream模块进行配置吗 Docker环境下如何转发1 修改docker-compose2 修改nginx.conf3 测试连接 需求简介&#xff1a; 需要在192.168.3.11的ngnix上&#xff0c;转发192.…

wordpress 导入数据后 为什么总是跳转到安装页面

在WordPress导入数据后跳转到安装页面的问题可能由以下原因引起&#xff1a; 数据库连接问题&#xff1a;在导入数据之前&#xff0c;确保您的WordPress配置文件中的数据库连接信息正确且完整。打开 wp-config.php 文件&#xff0c;确保数据库的名称、用户名、密码和主机信息是…

springboot整合spring security的简单入门案例

一 工程结构 二 配置操作 2.1 pom文件配置 <!-- Spring Security依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency> 2.2 config配置 Config…

vue中预览pdf

情况一 如果后端返回的pdf地址&#xff0c;粘贴到浏览器的url框中&#xff0c;可以在浏览器中直接进行预览的&#xff0c;那么我们就用window.open&#xff0c;或 a标签&#xff0c;或iframe标签通过设置src进行预览即可 法1&#xff1a;可以直接使用window.open&#xff08;…

css学习知识总结

一、css与html连接&#xff1a; 可以将css语句放在html内部&#xff0c;一般放在<head>之下&#xff0c;定义在<style>中&#xff0c;格式一般是一个“.”然后加上一个“名称”再加上一个“{}”&#xff0c;再在“{}”内部定义具体的语句。 二、调整元素 2.1 字体…

网络 socket

文章目录 概念和 TCP、UDP 区别和 HTTP 区别 概念 为网络通信提供的接口&#xff0c;定义了应用程序如何访问网络资源、如何发送和接收数据等&#xff0c;Socket 是一个包含了IP地址和端口号的组合&#xff0c;当一个应用程序想要与另一个应用程序通信时&#xff0c;它会向特定…

6.3.5 利用Wireshark进行协议分析(五)----捕获并分析ICMP报文

6.3.5 利用Wireshark进行协议分析&#xff08;五&#xff09;----捕获并分析ICMP报文 一、捕获ICMP报文 打开Wireshark&#xff0c;选择网络接口并点击开始按钮。分组列表面板不断刷新抓渠道的数据包&#xff0c;为了过滤出我们所要分析的ICMP报文&#xff0c;我们在过滤框中输…

线程池学习(六)线程池状态转化

线程池状态定义 // runState is stored in the high-order bits // 线程池创建之后的初始状态&#xff0c;这种状态下可以执行任务private static final int RUNNING -1 << COUNT_BITS; // 线程池不再接收新的任务&#xff0c;但是会将队列中的任务执行完 private s…

Go-新手速成-流程语句

1if Go的if不建议写&#xff08;&#xff09;&#xff0c;over //if条件判断age : 16if age < 18 {fmt.Println("未成年")} 2for循环 Go摈弃了while和do while 循环&#xff0c;因为他做到了极简(也不要括号) 这么写可以 total : 0for i : 0; i < 100; i {…

41:canvas - 下

一、转换 转换 在canvas内&#xff0c;也可以像css一样有一些类似于css2D转换的效果 位移 语法&#xff1a;ctx.translate(x, y)注意&#xff1a;一定要在绘制&#xff08;描边或填充&#xff09;之前&#xff0c;进行位移 缩放 语法&#xff1a;ctx.scale(x, y)注意&…

Servlet的过滤器

过滤器: 使用传统的方式需要在每个页面进行验证造成代码的冗余功能重复麻烦过滤器【统计进行验证、鉴权、日志、事务】拦截请求、过滤响应 配置一个Servlet package com.sparrow.servlet;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; im…

华为鲲鹏920 aarch64 版本 Ambari HDP 下载地址

声明&#xff1a;为有效缓解各位同行兄弟们的痛&#xff0c;特推出此文 本文能够适配兼容 华为鲲鹏920 aarch64 版本&#xff0c;仅限 CentOS7、openEuler20.03-LTS 操作系统 以下是详细下载地址 1、CentOS7 aarch64版本 CentOS7 aarch64 https://mirrors.huaweicloud.com/…