若依框架详细使用

article/2025/6/27 7:35:32

目录

🏳‍🌈若依是用来干什么的❓

🚩技术支持:

🏳‍🌈如何下载❓

🚩官网地址:

🏳‍🌈如何搭建ruoyi环境❓

🚩若依框架的目录结构

🚩 修改配置文件

1.application-druid.yml文件:

2.application.yml文件:

🚩运行后台服务

🚩运行前台服务

1.在ruoyi-ui模板下打开命令指示符

2.输入npm run dev运行项目

🏳‍🌈如何使用❓ 

🚩菜单生成的使用

​如何新增菜单?

🚩数据字典的使用

1.字典的创建:

2.字典数值插入

🚩代码生成的使用

1.导入表结构

2.编辑需要生成的信息

3.如何将下载的代码导入到项目中?


  

🏳‍🌈若依是用来干什么的❓

若依(ruoyi)一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。

🚩技术支持:

1.前端:Vue和ElementUI

2.后端:Spring Boot、Spring Security、Redis & JWT

3.权限认证使用jwt,支持多终端认证系统

4.支持动态加载权限菜单,多方式轻松权限控制

5.高效率开发,使用代码生成器可以一键生成前后端代码

6.数据库支持MySQL和Oracle


🏳‍🌈如何下载❓

🚩官网地址:

RuoYi 若依官方网站 |后台管理系统|权限管理系统|快速开发框架|企业管理系统|开源框架|微服务框架|前后端分离框架|开源后台系统|RuoYi|RuoYi-Vue|RuoYi-Cloud|RuoYi框架|RuoYi开源|RuoYi视频|若依视频|RuoYi开发文档|若依开发文档|Java开源框架|Java|SpringBoot|SrpingBoot2.0|SrpingCloud|Alibaba|MyBatis|Shiro|OAuth2.0|Thymeleaf|BootStrap|Vue|Element-UI||www.ruoyi.viphttp://ruoyi.vip/

    //这里我就以前后端分离版来讲解

//然后点击克隆/下载:

//可以复制链接使用git拉到本地也可以直接下载压缩包,可以根据自己的喜好来. 


🏳‍🌈如何搭建ruoyi环境❓

//在讲解如何使用之前还是先跟大家若依框架的目录结构吧。

🚩若依框架的目录结构

//一般情况下,ruoyi-system是储存后台代码的,ruoyi-ui是储存前端代码的 

//sql文件夹中是有两个sql脚本的,这两个脚本都是若依开源项目的必须脚本,需要运行在你自己    的数据库中,如果报错就交换一下两个脚本的运行顺序即可。

//在运行完两个脚本之后只需要修改若依一下配置即可运行了。 

🚩 修改配置文件

1.application-druid.yml文件:

# 主库数据源master:url: jdbc:mysql://localhost:3306/medical?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8username: rootpassword: 

 填写好自己的账号名及密码并将修改数据库的库名。

2.application.yml文件:

# 项目相关配置
ruoyi:# 名称name: RuoYi# 版本version: 3.8.4# 版权年份copyrightYear: 2022# 实例演示开关demoEnabled: true# 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)profile: D:/ruoyi/uploadPath# 获取ip地址开关addressEnabled: false# 验证码类型 math 数组计算 char 字符验证captchaType: math# 开发环境配置
server:# 服务器的HTTP端口,默认为8080port: 8080servlet:# 应用的访问路径context-path: /tomcat:# tomcat的URI编码uri-encoding: UTF-8# 连接数满后的排队数,默认为100accept-count: 1000threads:# tomcat最大线程数,默认为200max: 800# Tomcat启动初始化的线程数,默认值10min-spare: 100# 日志配置
logging:level:com.ruoyi: debugorg.springframework: warn# 用户配置
user:password:# 密码最大错误次数maxRetryCount: 5# 密码锁定时间(默认10分钟)lockTime: 10# Spring配置
spring:# 资源信息messages:# 国际化资源文件路径basename: i18n/messagesprofiles: active: druid# 文件上传servlet:multipart:# 单个文件大小max-file-size:  10MB# 设置总上传的文件大小max-request-size:  20MB# 服务模块devtools:restart:# 热部署开关enabled: true# redis 配置redis:# 地址host: localhost# 端口,默认为6379port: 6379# 数据库索引database: 0# 密码password: 123456# 连接超时时间timeout: 10slettuce:pool:# 连接池中的最小空闲连接min-idle: 0# 连接池中的最大空闲连接max-idle: 8# 连接池的最大数据库连接数max-active: 8# #连接池最大阻塞等待时间(使用负值表示没有限制)max-wait: -1ms# token配置
token:# 令牌自定义标识header: Authorization# 令牌密钥secret: abcdefghijklmnopqrstuvwxyz# 令牌有效期(默认30分钟)expireTime: 30# MyBatis配置
mybatis:# 搜索指定包别名typeAliasesPackage: com.ruoyi.**.domain# 配置mapper的扫描,找到所有的mapper.xml映射文件mapperLocations: classpath*:mapper/**/*Mapper.xml# 加载全局的配置文件configLocation: classpath:mybatis/mybatis-config.xml# PageHelper分页插件
pagehelper: helperDialect: mysqlsupportMethodsArguments: trueparams: count=countSql # Swagger配置
swagger:# 是否开启swaggerenabled: true# 请求前缀pathMapping: /dev-api# 防止XSS攻击
xss: # 过滤开关enabled: true# 排除链接(多个用逗号分隔)excludes: /system/notice# 匹配链接urlPatterns: /system/*,/monitor/*,/tool/*

这个文件是若依框架的主配置文件 ,主要有一下相关配置:

①ruoyi:这里是关于你这个项目的基本信息,里面有一个是验证码的形式(主要有数字个字符两种形式,可以自行选择,当然如果你不想要验证码也可以去数据库中找到sys_config这个配置表将其关闭如下图所示👇)

②server:这里是开发环境的设置,修改后台端口号就是在这个地方,一般情况下也不需要动这个地方除非默认的8080端口被占用了

③logging:这里是日志的显示形式,默认是debug的形式

④user:用户配置

⑤spring:里面有一个redis是需要修改地址和密码的,端口号一般情况下是默认的,redis这里有两种使用方式,一个是远程的,一个是本地的,这里建议是使用本地的,因为远程的服务不稳定需要考虑网络因素,有时就是因为一个redis项目卡在那就是因为这个原因,这里值得一提的是安装redis的时候不要装错了,比如说我的就是Windows的,就装Windows就行了,下面是redis官网。

    redis官网

⑥token:令牌的配置

⑦pagehelper:分页插件的配置

⑧swagger:swagger框架的配置

⑨xss:防止跨站脚本攻击的配置

🚩运行后台服务

运行RuoYiApplication这个启动程序,类路径如下:

ruoyi-admin模板->>src/main/java->>com.ruoyi->>RuoYiApplication

//若成功打印了下面的样图就表示后台运行成功:

 //若没有成功请检查上述步骤是否有遗漏. 

🚩运行前台服务

1.在ruoyi-ui模板下打开命令指示符

输入npm install初始化前端项目

2.输入npm run dev运行项目

//运行成功后会自动跳转至浏览器.

//进行到这个地方前期的准备工作就已经完成了


🏳‍🌈如何使用❓ 

✨登陆成功之后就会显示如下界面

 接下来主要讲解若依框架的菜单管理数据字典以及代码生成


🚩菜单生成的使用

//菜单的生成其实就是在sys_menu这张若依系统表中做操作的:

如何新增菜单?

点击新增 👇 

目录的创建: 

 

  • 上级菜单:其实就是父级菜单,对应数据库表字段中的parent_id,如果没有父级菜单就会默认为0
  • 菜单名称:显示在左侧的菜单名
  • 显示排序:自上而下显示的顺序
  • 路由地址:点击此菜单或者此目录跳转的路径(根据自己的需要来,不要乱来)
  • 是否外链:是否需要跳转至http(s)下的路由地址,一般情况下不需要选,除非你真的想要跳转外站地址(根据自己的需要来)
  • 显示状态:隐藏就是不会显示菜单在左侧,但是任然可以跳转菜单及菜单下的路由地址
  • 菜单状态:这里的状态禁用了除了不会显示在左侧菜单之外,还不能跳转到该菜单及菜单下的路由地址

菜单的创建:

//可以看出来菜单相比较目录而言就多了几个选项,下面来说说这些选项时用来干嘛的 

1.组件路径:其实就是前端代码中的组件存放的地址如下图所示:

用户管理的组件路径是system/user/index

其实就是在本地中对应的就是ruoyi-ui下src目录下的view文件下的地址

注意:这里的组件路径如果与你本地的文件路径不一致就会导致你点击了这个菜单但是并没有跳转到指定的地方,其实说白了就是404异常。

2.权限字符:控制器中定义的权限字符,如:@PreAuthorize(`@ss.hasPermi('system:user:list')`)这里的权限字符可以定义在菜单上也能定义在按钮上用来细化权限

3.路由参数:访问路由时需要携带的参数,这里需要注意是,需要写成对象并以键值对的形式保存,如{name:"zs",sex:"男"}

4.是否缓存:这里需要注意的是开启缓存的前提是组件的“name”必须与路由保持一致,因为若依是使用vue的一个抽象组件库keep-alive来处理缓存的

按钮的创建:

一般情况下我们是不会在这个地方创建按钮的,因为代码生成的时候若依会自动创建按钮,并且本人也不建议在这里创建按钮,因为本身我们使用若依框架就是为了快速开发,很多操作没必要化简为繁

🚩数据字典的使用

1.字典的创建:

  • 字典名称:其实就是这个字典的标签,如用户性别
  • 字典类型:这里需要注意的是在定义类型的时候不能乱来,这里定义的类型不能与已经有的类型重复,否则会报冲突异常,并且在定义类型的时候要有一定的规范,如果你不想定义的太复杂,这里建议使用(表名+字段) ,如用户性别sys_user表中的性别sex,写成sys_user_sex就行了

2.字典数值插入

//点击字典类型然后再点击新增:

 

  • 数据标签:显示出来内容,如用户性别中的“男”
  • 数据键值:保存在数据库中的int值,如1
  • 排序顺序:显示的先后顺序

🚩代码生成的使用

//这里我以用户表为例 

1.导入表结构

点击导入选择需要导入的表结构

2.编辑需要生成的信息


选中该表点击右边的编辑

基本信息、字段信息、生成信息三者根据自己的需求来编辑

如果要使用数据字典就直接在字段信息里面选择就行了,如下图

//在编辑生成信息的时候,可以选择上级菜单,这里就能够选择自己生成的菜单来处理业务,若依会帮你把路由都配置好的。

生成代码的方式:

这里生成的方式主要有两种(其实就是下载的方式):

1.压缩包的形式:一般情况下是使用这种形式,毕竟也方便,下载完之后直接解压放到项目指定的文件目录即可使用

2.自定义地址:如果自定义了自己的模块为了避免不必要的麻烦建议使用自定义地址

3.如何将下载的代码导入到项目中?

//这里我就直接讲解压缩包形式的,因为另一个是一样的方式。

上图就是下载之后的文件

1.sql文件就是你在生成代码的时候编辑的菜单及按钮,需要运行在你的数据库中

2.vue文件里面存放的是前端的代码里面有两个文件夹,api是js文件,views是vue文件,放入项目中对应的文件目录即可,如果没有冲突文件可以直接覆盖

3.main里面存放的就是后端的代码,操作同上述

 

注意:

在生成代码的时候如果数据库中存在相同字段比如说:多张表出现status字段,就会导致,在生成代码的时候有些实体类中字段缺失,明明这个实体类应该有这个字段但是生成之后的代码却没有,但是也不报错,导致这个问题是因为,若依生成的get/set方法使用的修饰符都是public,这个就会导致你在生成的时候默认你已经有get/set方法,就不会再帮你生成get/set方法,解决方式有两种:第一种就是从本源出发修改数据库中的字段,第二种就是手动添加实体类中的字段。

 


关于若依框架的就讲解到这里了,有什么问题欢迎私信博主!😂 


http://chatgpt.dhexx.cn/article/XCFUoTft.shtml

相关文章

js元素距离和鼠标位置整理

距离 offsetTop / offsetLeft ( 元素与父级 定位元素/table/td/th/body 的距离 ) clientTop / clientLeft ( 元素边框宽度 ) scrollTop / scrollLeft ( 元素滚动距离 ) window.scrollY / window.scrollX ( 文档/页面 滚动距离 ) window.pageYOffset / window.pageXOffset ( 另…

原生js实现跑马灯效果,鼠标放下可以停止跑动

js原生代码跑马灯效果纯js代码如下&#xff1a; 1.首先html的内容&#xff08;里面图片自己可以换&#xff0c;li里面也可以填文字&#xff09; <div> <ul><li>呵呵呵呵呵3</li> <li>叽叽叽叽叽4</li> <li…

unity拖拽UI生成Cube并跟随鼠标移动,放置点可放下

代码&#xff1a; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using UnityEngine.EventSystems; using UnityEngine.UI;public class DragCreate : MonoBehaviour {public GameObject Cube;public GameObje…

JavaScript的拖拽事件。

在浏览器可以随意的拖拽&#xff0c;我们来看下怎么实现&#xff1f; 我们具体分析一下步骤&#xff1a; 第一步&#xff1a;鼠标选中需要拖拽的地方&#xff0c;鼠标按下。&#xff08;需要使用事件onmousedown&#xff09; 第二步&#xff1a;鼠标按下后&#xff0c;我们接着…

html修改鼠标手势,css要怎么设置鼠标手势?

在CSS中&#xff0c;可以使用cursor属性来设置鼠标手势。下面本篇文章就来给大家介绍一下cursor属性。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对大家有所帮助。 cursor属性定义了鼠标指针放在一个元素边界范围内时所用的光标形状。有时我们需要…

java 鼠标响应_java小程序中鼠标事件的响应处理

如何在小程序中实现鼠标响应&#xff1f; public class Hello extends Applet implements MouseListener{ public void init(){ addMouseListener(this); } public void mouseEntered(MouseEvent e){ au.play(); setBackground(Color.blue); } public void mouseExited(MouseEv…

html修改鼠标手势,css设置鼠标手势的方法

css设置鼠标手势的方法 相对于传统HTML的表现而言&#xff0c;CSS能够对网页中的对象的位置排版进行像素级的精确控制&#xff0c;支持几乎所有的字体字号样式&#xff0c;下面小编给大家整理了css设置鼠标手势的方法&#xff0c;供大家参阅。 属性名&#xff1a;cursor 属性值…

鼠标拖动生成画框

需求&#xff1a;鼠标按下拖动生成一个画框 注意点&#xff1a; div 的left和top&#xff1a;如果鼠标当前位置>鼠标起始位置&#xff0c;则为鼠标起始位置&#xff08;鼠标往右拉&#xff09;&#xff1b;如果鼠标当前位置<鼠标起始位置&#xff0c;则为鼠标当前位置(…

QT 实现鼠标拖动(drag)和放下(drop)代码(图形操作四)

拖动的对象&#xff1a; #include "outlistitem.h" #include "ui_outlistitem.h"OutListItem::OutListItem(QWidget *parent) :QWidget(parent),ui(new Ui::OutListItem) {ui->setupUi(this); }OutListItem::~OutListItem() {delete ui; }void OutList…

放下鼠标 全键盘定义你的浏览器

在linux上用过vim的朋友相信都被这个编辑器惊艳到了吧, 但是它只是在linux系统中存在而且是在字符操作界面。但是如果将这种可以全键盘的操作搬到windows上这样的图形界面又是怎样令人去感到惊艳呢&#xff1f; 本文介绍的插件是基于谷歌和火狐的&#xff0c;它可以使你在很大的…

外企工作日常:全英文CrossTalk反串讲-讲前紧张,讲后淡定

起因&#xff1a; 在三周之前我接到了一个任务&#xff0c;更准确讲是我自己“作死”主动领取了一个更复杂的任务。这个任务包含了三个相关联的需求。这个需求说简单也简单&#xff0c;说复杂也复杂&#xff5e; 简单在&#xff1a;就是更改一下更新token时间的一个逻辑&am…

linux周六串讲

esc. //粘贴复制上一条命令的参数 cat /etc/resolv.conf //查看DNS地址 route -n //查看网关 hostname //临时修改主机名 hostnamectl set-hostname 名称 //永久修改主机名 ssh root192.168.10.233 //用windows远程的格式&#xff0c;在CMD窗口输入这个命令 …

【Linux】Linux指令串讲

大家好&#xff0c;今天要开启一个新的专题&#xff1a;Linux 今天的内容是指令还有一些基本的Linux知识补充 由于Linux的知识很难明确写出分类&#xff0c;所以目录就不会做的特别详细完全 喜欢的小伙伴点赞收藏一下不迷路哦 目录 1.目录 2.文件 3.路径 1.目录 1.创建目录…

kafka 串讲:架构模型、角色功能梳理

kafka 串讲&#xff1a;架构模型、角色功能梳理 kafka 的 what why how&#xff0c;先有一个粗略宏观的理解 rabbitmq、各种 mq 的技术选型、横向对比 首先&#xff0c;kafka 是一个消息中间件。我们从一个本质的点聊起&#xff0c;我们有一个系统 service&#xff0c;如果这…

【视频理解】论文串讲

视频理解论文串讲 2020-视频理解综述-A Comprehensive Study of Deep Video Action Recognition2014-CVPR-Large-scale Video Classification with Convolutional Neural Networks2014-NIPS-Two-Stream Convolutional Networks for Action Recognition in Videos2015-CVPR-Beyo…

李沐论文精度系列之八:视频理解论文串讲

文章目录 一 、前言二、 DeepVideo&#xff08;IEEE 2014&#xff09;2.1 模型结构2.2 实验结果2.3 总结 三、双流网络及其变体3.1 Two-Stream&#xff08;NeurIPS 2014&#xff09;3.1.1 简介3.1.2 改进工作 3.2 Two stream LSTM&#xff08;CVPR 2015 &#xff09;3.2.1 模型…

【Java】JVM 知识串讲

1. JVM 是什么 JVM 是 Java 虚拟机的简称&#xff0c;我们在下载 Java 运行环境时&#xff08;jre&#xff09;&#xff0c;就已经包含了 JVM 了&#xff0c;JVM 是 Java实现跨平台的最核心的部分&#xff0c;所有的 Java 程序会首先被编译为 .class 的类文件&#xff0c;这种…

视频理解论文串讲——学习笔记

文章目录 DeepVideoTwo-StreamBeyond-short-SmippetsConvolutional FusionTSN C3DI3DNon-localR&#xff08;21&#xff09;DSlowFast Timesformer 本文是对视频理解领域论文串讲的笔记记录。 一篇相关综述&#xff1a;Yi Zhu, Xinyu Li, Chunhui Liu, Mohammadreza Zolfaghari…

CGB2202串讲-java复习

java基础&#xff1a; day01&#xff1a; 1&#xff1a;java的开发环境&#xff1a; 编译器&#xff1a;.java源文件&#xff0c;编译成.class的字节码文件 运行期&#xff1a;jvm加载并运行.class字节码文件 2&#xff1a;名词解释&#xff1a; jvm&#xff1a; 加载并运行.cl…

我的论文串讲「一」

文章目录 [Done]2022-arXiv-It’s DONE Direct ONE-shot learning without training optimizationAbstractIntroductionRelated workMethodologyImplementation and DatasetResults and Discussion [Phase]2021-SPIE-Deep neural networks to improve the dynamic range of Zer…