草庐IT

【若依后管框架(前后端分离版)】 如何部署若依以及添加自己的功能模块和菜单

Ding Jiaxiong 2023-07-08 原文

【若依后管框架(前后端分离版)】 如何添加自己的功能模块以及菜单

【文章开始之前,先说一句,若依牛逼!】

文章目录

1 若依框架简介

RuoYi-Vue 是一个 Java EE 企业级快速开发平台,基于经典技术组合(Spring Boot、Spring Security、MyBatis、Jwt、Vue),内置模块如:部门管理、角色用户、菜单及按钮授权、数据权限、系统参数、日志管理、代码生成等。在线定时任务配置;支持集群,支持多数据源,支持分布式事务。

若依前后端分离版官方文档地址:http://doc.ruoyi.vip/ruoyi-vue/

代码仓库地址:https://gitee.com/y_project/RuoYi-Vue

2 若依框架【前后端分离版】下载安装运行

2.1 运行系统环境需求
  • JDK >= 1.8

  • MySQL >= 5.7

  • Maven >= 3.0

  • Node >= 12

  • Redis >= 3

2.2 源码下载

【官方推荐直接clone 仓库,笔者这里就直接下载源码 了】

前后端分离版源码地址:

https://gitee.com/y_project/RuoYi-Vue

直接下载源码压缩包

等待下载完成

OK,解压

点进去看看

OK,一个标准的Maven 多模块 工程项目。

2.3 数据源准备

在解压好的源码目录下 sql 文件夹

这两个sql 文件需要导入数据库

【新建名为 ry-vue (当然这个可以改)的数据库】

笔者因为已经有了 个同名数据库,就小改一下

确定

直接拖入两个SQL 文件

开始

另一个同理

最终数据库效果

OK。这样数据库 就准备好了 。

2.4 运行项目

使用IDEA 【或者其他开发工具导入项目】

OK。

这样就同步完成了。

修改一下数据源配置

主要是数据库名 和数据库 用户名密码。

OK,现在就可以启动服务了

注意启动时,Redis 服务需要处于 运行状态,不然会抛异常【因为若依框架使用到了缓存】

OK,这样后端 就启动成功 了。但是因为是前后端完全分离的,
直接访问

所以还需要启动项目

可以直接 在IDEA 工具中打开命令行

cd 到 ruoyi-ui 目录下

OK,使用命令 npm install 安装前端项目需要的依赖

等待安装完成

OK,依赖下载完成。现在就可以 运行前端项目 了

使用命令 npm run dev

等待运行完毕

OK,编译成功后,会自动弹出页面

这就是 若依【前后端分离版】 系统了。

3 添加自己的功能模块

输入计算密码, 进入系统

可以看到,默认的系统就是这个样子了,基本的功能可以说是相当齐全,让人忍不住再说一次,【若依牛逼!】

现在我们就来添加一个简单的自己的功能模块【主要是让大家能够知道使用方法】

3.1 准备数据源

这里笔者就简单的,比如说做一个“活动管理”,肯定得有一张活动表嘛

直接在数据库中创建

随便来几个字段**【注意:把注释填好,有用!!!!!!】**

给表 本身也弄个 注释!!! 有用!!!!!!

【确定】

OK。数据表新建成功。

随便插入一条数据吧

OK。

3.2 使用若依代码生成器生成菜单以及接口、页面

接下来就是本文最核心的地方了

在这旁边加上一个活动管理,对我们刚刚新弄的活动表 进行管理

点击菜单管理,先来一个“大 菜单”

确定

这样就添加上了,下面祭出 代码生成!

导入我们数据里面的 活动表

确定

OK,现在进行 一些设置,点击 编辑

可以看到一共有 三栏

① 基本信息

这个没啥好说的,改一下作者吧,这样生成的 接口代码中,文档注释 author 就会显示这个 了

② 字段信息

这个根据自己的需求改就好了

③ 生成信息【这个是核心

OK,直接提交。【注意上级菜单】

点击生成 代码

下载下来

OK。代码生成就算完成了。

3.3 后端添加代码模块

就靠若依 生成的代码肯定是不够的,我们需要在后端源码 基础上做一些 修改

新建一个子模块

创建

OK,一个干净的子 模块

修改一下pom 文件

    <dependencies>
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-common</artifactId>
        </dependency>
    </dependencies>

因为需要借助 “通用模块” 中的一些功能,所以要将其作为依赖加入我们的 活动模块中【properties 需要杀删掉, 父工程已经有了,这里最好不写】

修改ruoyi-admin 模块的pom 文件,将我们自己添加的活动模块加进来

        <!--    活动信息管理    -->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-activity</artifactId>
            <version>${ruoyi.version}</version>
        </dependency>

【记得刷一下,到这里 “自己动手” 的地方就算完了】

3.4 添加生成的代码到项目中

OK,现在就可以祭出 我们代码生成那一步生成的压缩包 了

解压出来

剩下的事儿 就非常简单 了

① 数据库

直接一把运行

OK, 运行成功。

② 添加后端代码

看看生成了些 啥

OK,控制器、实体类、数据层接口、业务层接口、业务层 实现类全有 了

还剩一个,mapper 映射文件

在这里

直接复制进去

OK,后端完事儿。

③ 贴入前端 代码

直接复制这一整个 文件夹

贴到这里,OK

还有个页面

也直接复制 这个文件夹

OK。大功告成

重启一下后端服务

查看前端页面

牛逼!

4 测试功能

4.1 增

4.2 删

4.3 改

4.4 查

OK,就这样吧,若依的强大 远远不止这些,大家慢慢探索吧,若依牛逼!!!

最后 我们一定能够成为我们想要去成为的人。

有关【若依后管框架(前后端分离版)】 如何部署若依以及添加自己的功能模块和菜单的更多相关文章

  1. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  2. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  3. 阿里云国际版免费试用:如何注册以及注意事项 - 2

    作为新的阿里云用户,您可以50免费试用多种优惠,价值高达1,700美元(或8,500美元)。这将让您了解和体验阿里云平台上提供的一系列产品和服务。如果您以个人身份注册免费试用,您将获得价值1,700美元的优惠。但是,如果您是注册公司,您可以选择企业免费试用,提交基本信息通过企业实名注册验证,即可开始价值$8,500的免费试用!本教程介绍了如何设置您的帐户并使用您的免费试用版。​关于免费试用在我们开始此试用之前,您还必须遵守以下条款和条件才能访问您的免费试用:只有在一年内创建的账户才有资格获得阿里云免费试用。通过此免费试用优惠,用户可以免费试用免费试用活动页面上列出的每种产品一次。如果您有多个帐

  4. ruby - ruby 中的同一个程序如何接受来自用户的输入以及命令行参数 - 2

    我的ruby​​脚本从命令行参数获取某些输入。它检查是否缺少任何命令行参数,然后提示用户输入。但是我无法使用gets从用户那里获得输入。示例代码:test.rbname=""ARGV.eachdo|a|ifa.include?('-n')name=aputs"Argument:#{a}"endendifname==""puts"entername:"name=getsputsnameend运行脚本:rubytest.rbraghav-k错误结果:test.rb:6:in`gets':Nosuchfileordirectory-raghav-k(Errno::ENOENT)fromtes

  5. ruby - Ruby 中的选项菜单 - 2

    我正在尝试在Ruby中创建一个菜单,以便根据用户输入的内容,取决于调用的类。然后在这种情况下它将返回到“Main”或类“Options”。我希望有人能帮助我。这是我的代码。modulePhysicsG=21C=20000Pi=3.14D=100endclassOptionsputs"Pleaseselect1forAccelerationand2forEnergy."option=gets()ifoption==1thenputs"AccelCalc"#ThisisthebitthatneedstodirecttheusertotheclassAccelCalcelseputs"Ene

  6. ruby - 在 ruby​​ 中的字符串前后添加空格? - 2

    我想在随机字符串前后添加一个空格。我试过使用"Random_string".center(1,"")但它不起作用。谢谢 最佳答案 我发现这是最优雅的解决方案:padded_string="#{random_string}"走简单的路没有错。 关于ruby-在ruby​​中的字符串前后添加空格?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3357897/

  7. ruby - 下拉菜单在应该被选中的时候没有被选中……为什么? - 2

    我正在尝试解决我们测试中的一个错误,我认为它应该有效。我很确定这是selectize或capybara中的错误,但我不明白为什么。我已经进入了capybara的源代码,一切似乎都在正常工作。我真的不确定如何前进。为了测试这个错误,我已经尽可能地把这个错误剥离成一个小的testapplication.请参阅下面的设置bugs/show.html.erbOneTwoThreeFourOneTwoThreeFourbug_spec.rbfeature'bug'doit"specsetup",js:truedovisitbug_pathfind('div.selectize-inputinpu

  8. ruby - 如何在子类中的方法前后运行代码? - 2

    我的第一个想法是这样的:classAbstractBuilderattr_reader:time_takendefbuild_with_timerstarted_at=Time.nowbuild@time_taken=Time.now-started_atenddefbuildraise'Implementthismethodinasubclass'endendclassMyBuilder我怀疑有更好的方法可以提供更好的灵active,例如理想情况下,我想在MyBuilder的实例上调用“build”而不是“build_with_timer”,并且始终记录执行时间。我确实考虑过使用al

  9. 【Elasticsearch基础】Elasticsearch索引、文档以及映射操作详解 - 2

    文章目录概念索引相关操作创建索引更新副本查看索引删除索引索引的打开与关闭收缩索引索引别名查询索引别名文档相关操作新建文档查询文档更新文档删除文档映射相关操作查询文档映射创建静态映射创建索引并添加映射概念es中有三个概念要清楚,分别为索引、映射和文档(不用死记硬背,大概有个印象就可以)索引可理解为MySQL数据库;映射可理解为MySQL的表结构;文档可理解为MySQL表中的每行数据静态映射和动态映射上面已经介绍了,映射可理解为MySQL的表结构,在MySQL中,向表中插入数据是需要先创建表结构的;但在es中不必这样,可以直接插入文档,es可以根据插入的文档(数据),动态的创建映射(表结构),这就

  10. FPGA 之 时钟,时钟域, 以及复位系统的设计 - 2

    FPGA时钟和时钟域时钟树所谓时钟树为FPGA内部资源,分:全局时钟树,区域时钟树,IO时钟树原则上优先使用全局时钟树,在GT接口上使用IO时钟树,一般工具也会对GT时钟加以限制;时钟树使用方式正确的物理连接FPGA会由物理管脚专门用于全局时钟设置,通过查询数据手册可以在PCB设计阶段进行确认,当外部时钟接入此管脚时,工具会自动占有全局时钟树资源,当接入普通信号时不会分配时钟树资源;恰当的代码描述原语的使用,即BUFG的使用,可以将PLL的输出等内部时钟进行全局时钟资源的分配;IO时钟资源需要参考相应接口手册,以ultrascale的GTH为例,其JESD204的时钟方案针对不同的子类会由不同

随机推荐