若依框架学习

news2024/11/17 3:53:12

1.若依(前后端分离版)

1.1什么是若依

开源项目,学习开源项目的目的:

1.用别人的,减少自己的工作量

2.学习他的底层编程思想,设计思路,提高自己的编程能力

官网:www.ruoyi.vip

基础:springboot+Vue

环境要求:

1.jdk1.8+

2.mysql

3.Redis

4.Maven

5.vue

1.2使用若依

1.下载并运行

  • 先从官网上下载,从码云上拉取

  • 创建本地数据库

  • 配置好数据源:在admin的数据源配置文件里

  • 配置好Redis:下载好Redis,开启服务之后,在主配置文件当中配置。

  • redis.exe文件闪退,在根目录下打开cmd,输入redis-server.exe redis.windows.conf

  • 启动后端

  • 在终端启动前端

    • 进入到ruoyi-ui目录下

    • 安装依赖:npm install/npm i

    • 启动前端:npm run dev

2.看懂业务流程

3.进行二次开发

1.3登录

1.3.1 生成验证码

|基本思路

  • 后端用方法生成一个表达式 1+1=2,然后用@拆成两部分

    • 1+!=?@2这里用captchaProducerMath.createText()方法实现的

    • 1+1=?转成图片,传到前端进行展示

    • 2存入Redis

    • 请求 URL:

      http://localhost/dev-api/captchaImage

    • Vue获取图片,前端还是后端?

      • 反向代理,URL请求前端,进行代理,映射到后端,解决跨域问题

      •  

      • /dev-api 替换成‘ ’ 再映射到http://localhost:8080,即http://localhost:8080/captchaImage

后端代码:

  • 用全局搜索找请求的代码:右键模块:find in path,或者使用快捷键。Ctrl+shift+f

1.3.2登录的具体实现

 

后端:

1.校验验证码

2.校验用户名和密码

  • 涉及到了线程池,异步任务管理器(这里不会)

3.生成token

使用一步管理器,结合线程池,实现了异步的操作日志记录,和业务逻辑实现异步解耦合。

1.3.3 getInfo

权限当中的 *: * :*是什么:spring-Security里面的 :表示所有权限

1.3.4 getRouters

根据当前用户的权限获取动态路由

1.4用户管理

流程:加载Vue页面-->请求后台数据

  1. getList

     

  2. startPage():分页操作

    • PageHelper中的reasonable对参数进行逻辑处理,保证参数的正确性:把非数字和小于零的数字改成1

  3. userService.selectUserList(user)

    • 注解@DataScope(deptAlias = "d", userAlias = "u"):给表设置别名的

  4. treeSelect

    • 查出所有的部门数据

    • 组装成树状结构

1.9代码生成

  1. 先创建数据库表

  2. 在系统工具中使用代码生成功能,导入数据库表(如果导入的时候出错,有可能是数据库字符编码默认选择了Unicode...)

  3. 导入表之后,进行编辑

    •  

    •  

  4. 点击生成代码,就会下载得到一个压缩包

    1. 里面包括三部分,后端,前端以及SQL(菜单的SQL语句)

  5. 按目录结构导入代码,重启项目

    1. main目录

    2. 前端src目录

    3. 执行SQL查询

  6. 重启项目

  7. 到菜单管理处设置图标

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

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

相关文章

“AI+RPA+数据+机器人”:深入解析“数字员工”的内涵和价值

世界正进入数字经济快速发展的时期。 2021年12月,中央网络安全和信息化委员会印发《“十四五”国家信息化规划》,提出加快建设数字中国,大力发展数字经济的总体目标;2022年1月,央行印发《金融科技发展规划&#xff08…

第十章 番外篇:DDP

参考教程: what is DDP pytorch distributed overview 文章目录 DDP介绍什么是DDPDistributedSampler()DistributedDataParallel() 使用DDP代码示例multiprocessing.spawn()save and load checkpoints DDP介绍 什么是DDP DDP的全称是DistributedDataParallel&…

Qt控件学习

目录 QPushButton QToolButton QRadioButton QCheckBox QPushButton MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);ui->n1->setText("我的世界");ui->n1->setIcon(QIcon(":/111…

异构广告混排在美团到店业务的探索与实践

转子:https://tech.meituan.com/2022/03/10/exploration-and-practice-of-heterogeneous-ad-mixed-ranking-in-meituan-ads.html 1 背景与简介 1.1 背景 美团到店广告负责美团搜索流量的商业变现,服务于到店餐饮、休娱亲子、丽人医美、酒店旅游等众多…

文言一心,ChatGLM-6B和ChatGPT等模型概述

原文首发于博客文章大语言模型概况 定义 (个人理解的)大语言模型(Large Language Model)是一种基于深度学习技术的自然语言处理通用模型,它可以通过学习大规模文本数据的模式和规律,从而实现对自然语言的理…

【面试】你知道数据库能抗多大并发压力吗?

文章目录 前言一、一般业务系统运行流程图二、一台4核8G的机器能扛多少并发量呢?三、高并发来袭时数据库会先被打死吗?四、数据库架构可以从哪些方面优化?4.1、根据业务系统拆分多个数据库机器优化方案4.2、读写分离架构优化方案4.3、分库分表…

华为手表上架(1)HarmonyOS应用 打包 .app

华为手表上架(1)HarmonyOS应用 打包 .app 初环境与设备先找到配置项目结构的地方: Project Structure配置证书打包 .app 在本文中,我们介绍探讨华为手表上架的流程,并重点介绍HarmonyOS应用的打包过程。了解如何将应用…

locust学习教程(5) - 分布式执行

目录 前言 1、基础 2、操作步骤 2.1、启动主节点 2.2、启动从节点 2.2.1、启动自己电脑的从节点 2.2.2、启动同事电脑的从节点 2.3、开始并发 3、无web界面,定时运行,数据存储在csv中、等待4个节点连接后自动开始 4、有web界面,定时运…

5年测试老鸟整理,企业自动化测试经验,不要再走弯路了...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 2023年&#xff0…

vue-antdesign——实现table单元格合并+换行展示+滚动到指定位置+行样式设置——技能提升

最近在写后台管理系统,遇到一个需求,就是要实现表格table组件的合并单元格,并实现编辑等功能。 效果图如下: 下面做一下记录: 1.表格table组件实现单元格合并 之前写过一篇文章关于单元格合并的功能,这…

倒谱和同态去卷积

本文首发于算法社区,转载请注明出处,谢谢。 前言 倒谱的内容比较少,比较相关的就是同态系统去卷积了,所以把这两个放在一起了。 倒谱 我们考虑一个具有 z z z 变换的序列 { x n } \left \{ x_{n} \right \} {xn​} 。我们假设…

Elasticsearch(十一)搜索---搜索匹配功能②--range查询和exists查询

一、前言 继上一节学习了ES的搜索的查询全部和term搜索后,此节将把搜索匹配功能剩余的2个学习完,分别是range搜索和exists搜索 二、range范围搜索 range查询用于范围查询,一般是对数值型和日期型数据的查询。使用range进行范围查询时&…

创建多线程的四种方式

目录儿 一、创建线程的四种方式1. 继承Thread类2. 实现Runnable接口3. 实现Callable接口4. 线程池禁止使用 Executors 构建线程池构建线程池的正确方式 一、创建线程的四种方式 1. 继承Thread类 ① 创建一个类继承Thread类,重写run()方法 ② 调用start()方法启动线…

AI卷入618战场;印象AI开放次数限制;2023 AIGC人才趋势洞察报告;员工瞒着老板悄悄用AI;超好用的AI头像生成教程 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 澳洲游戏媒体 Gamurs 招聘AI编辑,被各路媒体口诛笔伐 上周,澳洲知名游戏媒体集团 Gamurs 在官网招聘「AI Edit…

负载测试和压力测试有何区别?资深测试老鸟总结,一篇搞定...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 负载与压力测试 …

js中数组对象去重的几种方式

js中数组对象去重的几种方式 1、方法一:双层for循环2、对象访问属性的方法3、Map()方法4、reduce方法 首先我们定义数组的形式 let arrObj [{ name: "张三", key: 1 },{ name: "李四", key: 2 },{ name: "王五", key: 3 },{ name: &…

基于langchain+chatGLM搭建部署本地私有化知识库系统

前言 一、 自主GPT 所谓自主(autonomous)GPT是设计一个Agent,让它自己做计划、决策和动作,通过源源不断的迭代,去完成设定的目标。比如 AutoGPT 。 AutoGPT把GPT的能力推向了更高的应用层次。设定一个任务&#xff…

mac下qtcreator代码格式化

代码开发:qtcreator qtcreator 插件:Beautifier 格式化工具:clang-format 1、Beautifier插件安装 将复现框勾选后重启qtcreator即可。 2、安装clang-format工具 (1)打开终端输入下面命令等待安装完成 brew install…

Python基础(19)——Python函数讲解一

Python基础(19)——Python函数讲解一 文章目录 Python基础(19)——Python函数讲解一目标一. 函数的作用二. 函数的使用步骤2.1 定义函数2.2 调用函数2.3 快速体验 三.函数的参数作用四.函数的返回值作用4.1 应用 五.函数的说明文档…

大快人心,华为EDA领域的新突破,关联软件已取得全面适配

EDA被称为“芯片之母”,是集成电路、电子信息,甚至是全球数字经济的赋能者,是许多电子产业链的基石。 一直以来,就被国际的三大巨头占领:美国Synopsys、美国Cadence、德国Mentor Graphics,市场份额高达90%。…