若伊(前后端分离)学习笔记

news2024/9/28 23:11:58

基础应用篇

1. 若伊搭建

若伊版本

若依官方针对不同开发需求提供了多个版本的框架,每个版本都有其独特的特点和适用场景:

  • 前后端混合版本 :RuoYi结合了SpringBoot和Bootstrap的前端开发框架,适合快速构建传统的Web应用程序,其中前端和后端代码在同一项目中协同工作。
    在这里插入图片描述
  • 前后端分离版本:RuoYi-Vue利用SpringBoot作为后端开发框架,与Vue.js结合,实现了前后端分离的开发模式。这种架构有助于提高开发效率,前后端可以独立开发和部署,更适合现代化的Web应用开发。
    在这里插入图片描述
  • 微服务版本:RuoYi-Cloud基于Spring Cloud & Alibaba微服务架构,为构建大型分布式系统提供了完整的解决方案。它支持服务发现、配置管理、负载均衡等微服务特性,适合需要高可扩展性和高可用性的企业级应用。
    在这里插入图片描述
  • 移动端版本:RuoYi-App采用Uniapp进行开发,结合了Vue.js的优势,可以实现跨平台的移动端应用开发。一次编写,多端运行的能力使得它成为开发iOS和Android应用的理想选择。
    在这里插入图片描述
  • RuoYi-other(Vue3+ElementPlus+Vite)没有后端模块,可以适配前后端分离和微服务,默认前后端分离版使用的vue2
    在这里插入图片描述

RuoYi-Vue(前后端分离,前端使用vue3版)

RuoYi-Vue版本,采用了前后端分离的单体架构设计:

  • 软件环境:JDK、MySQL 、Redis 、Maven、Node
  • 技术选型:Spring Boot、Spring Security、MyBatis、Jwt、Vue3、Element-Plus
  • 官方地址:https://gitee.com/y_project/RuoYi-Vue
  • 扩展地址:https://gitee.com/ys-gitee/RuoYi-Vue3

运行后端项目

Git下载

通过idea克隆若依源码,仓库地址:https://gitee.com/y_project/RuoYi-Vue.git
在这里插入图片描述
使用idea打开项目后,等待环境检查(主要是Maven下载项目依赖)
在这里插入图片描述

MySQL相关
  1. 导入sql

创建数据库create schema ry-vue;
执行下图的sql脚本文件,完成导入
在这里插入图片描述
在这里插入图片描述

  1. 配置信息

ruoyi-admin模块下,编辑resources目录下的application-druid.yml,修改数据库连接

# 数据源配置
spring:
   datasource:
       type: com.alibaba.druid.pool.DruidDataSource
       driverClassName: com.mysql.cj.jdbc.Driver
       druid:
           # 主库数据源
           master:
               url: 数据库地址
               username: 数据库账号
               password: 数据库密码

在这里插入图片描述

Redis相关
  1. 启动Redis
  2. 配置信息

ruoyi-admin模块下,resources目录下的application.yml,可以设置redis密码等相关信息
在这里插入图片描述

项目运行

ruoyi-admin模块下,运行com.ruoyi.RuoYiApplication.java,出现如下图表示启动成功
在这里插入图片描述
访问http://localhost:8080
在这里插入图片描述

运行前端项目

  1. Git下载
# 克隆vue3项目
git clone https://gitee.com/ys-gitee/RuoYi-Vue3.git

# 通过vscode打开项目
code ./RuoYi-Vue3
  1. 项目运行
# 安装依赖
npm install

# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
npm install --registry=https://registry.npmmirror.com

# 启动服务
npm run dev

在这里插入图片描述

默认账号/密码(admin/admin123)


2. 入门案例

通过若伊的代买生成实现课程需求的增删改查前后端完整模块

步骤分析

  1. 准备课程表结构和数据sql文件,导入到数据库中
  2. 登录系统(系统工具 -> 代码生成 -> 导入课程表)
  3. 代码生成列表中找到课程表(可预览、编辑、同步、删除生成配置)
  4. 点击生成代码会得到一个ruoyi.zip
  5. 执行sql文件导入菜单,按照包内目录结构复制到自己的项目中即可

代码生成

  1. 导入课程表sql
    在这里插入图片描述
  2. 代码生成导入
    在这里插入图片描述
  3. 修改生成配置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

代码导入

  1. 执行菜单sql脚本
    在这里插入图片描述
  2. 前端页面
    在这里插入图片描述
  3. 后端代码

将main/java/com 拷贝到admin中
在这里插入图片描述

将main/resources/mapper拷贝到admin中
在这里插入图片描述

重启项目
在这里插入图片描述

3. 功能详情

系统管理

在这里插入图片描述

权限系统
  • 权限控制
    在这里插入图片描述

RBAC(基于角色的访问控制)是一种广泛使用的访问控制模型,通过角色来分配和管理用户的菜单权限。
在这里插入图片描述

  • 表关系说明
    在这里插入图片描述
    在这里插入图片描述
  • 案例

创建新用户小智并关联课研人员角色,仅限课程管理和统计分析菜单访问。

  1. 创建菜单
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. 创建角色,并分配权限
    在这里插入图片描述
  3. 创建用户,并管理角色
    在这里插入图片描述
  4. 登录刚创建的用户测试权限控制
    在这里插入图片描述
数据字典
  • 若依内置的数据字典,用于维护系统中常见的静态数据。例如:性别、状态…
  • 功能包括:字典类型管理、字典数据管理
  • 表关系说明
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 案例

将课程管理的学科字段改为数据字典维护。

  1. 添加字典类型和数据
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  1. 修改代码生成信息
    在这里插入图片描述

在这里插入图片描述

  1. 下载代码替换原来的前端页面
    在这里插入图片描述

系统监控

系统工具

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

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

相关文章

画两个数的平方和的曲线

代码1: from mpl_toolkits import mplot3d import numpy as np import matplotlib.pyplot as plt# Creating dataset x np.outer(np.linspace(-3, 3, 32), np.ones(32)) y x.copy().T # transpose z (x **2 y **2 )# Creating figure fig plt.figure(figsize …

Android Studio :The emulator process for AVD was killed。

问题描述&#xff1a; 创建虚拟器&#xff0c;点击运行后提示&#xff1a;<font style"color:rgb(34, 34, 38);">The emulator process for AVD was killed</font> 分析原因&#xff1a; 虚拟机安装路径中包含中文字符导致乱码 > Android Studio …

锦天云中秋之夜团圆家宴圆满成功

2024年9月7日&#xff0c;锦天云&#xff08;深圳&#xff09;计算机设备有限公司 在中国深圳成功举办了“融创智合•月满锦天 锦天云中秋之夜团圆家宴。本次盛会吸引了来自各行业的精英和合作伙伴&#xff0c;大家齐聚一堂&#xff0c;共同庆祝这一传统佳节&#xff0c;此次活…

Subdominator:一款针对漏洞奖励计划的子域名安全枚举工具

关于Subdominator Subdominator是一款针对漏洞奖励计划的子域名安全枚举工具&#xff0c;可用于在漏洞搜寻和侦察过程中进行被动子域名枚举。它旨在通过高效枚举子域名和各种免费被动资源来帮助研究人员和网络安全专业人员发现潜在的安全漏洞。 Subdominator 与各种免费和付费…

Comfyui 学习笔记2

在潜空间放大&#xff0c;三种方法&#xff1a;NNLatentUpscale、Upscale Latent、Upscale Latent&#xff0c;其中只有NNLatentUpscale自带模型优化&#xff0c;其他两种需要KSample重新绘画&#xff0c;NNLatentUpscale后也可以接KSmaple。 像素空间放大&#xff0c;同理&am…

attrs:Python的类装饰器(简化类定义)

在 Python 中&#xff0c;类定义和数据管理是非常常见的编程任务。然而&#xff0c;随着代码的复杂性增加&#xff0c;手动编写大量的 __init__、__repr__ 和 __eq__ 等方法可能会显得冗长和重复。为了解决这些问题&#xff0c;attrs 提供了一个简洁且强大的工具&#xff0c;帮…

HTML|基础|创建一个猫咪信息表单的最佳实践指南

创建一个猫咪信息表单的最佳实践指南 本文将指导你如何创建一个简单而有效的猫咪信息表单。我们将通过 HTML 代码的实例&#xff0c;介绍关键元素和最佳实践&#xff0c;确保表单既易于使用又符合标准。 0. 代码全貌 <!DOCTYPE html> <html lang"en">&…

机器学习:opencv--特征检测

目录 前言 一、 Harris 角点检测 1.基本思想 2.代码实现 二、 SIFT&#xff08;尺度不变特征变换&#xff09; 1.代码实现 前言 特征检测是计算机视觉中的一个重要任务&#xff0c;旨在从图像中提取具有辨识度的关键点或区域。这些特征可以用于后续的图像分析、匹配和识别…

江科大笔记—LED闪烁 LED流水灯 蜂鸣器

LED闪烁& LED流水灯& 蜂鸣器 LED闪烁 第一步&#xff0c;使用RCC开启GPIO时钟。 第二步&#xff0c;使用GPIO_Init函数初始化GPIO。 第三步&#xff0c;使用输出或输入的函数控制GPIO口。 RCC库函数 GPIO库函数&#xff08;先了解这些&#xff09; GPIO的8种输入模…

第十四届蓝桥杯真题Java c组A.求和(持续更新)

博客主页&#xff1a;音符犹如代码系列专栏&#xff1a;蓝桥杯关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 【问题描述】 求1(含)至 20230408(含)中每个数的和。 【答案提交】 这是一道结…

景联文科技精准数据标注:优化智能标注平台,打造智能未来

景联文科技是一家致力于为人工智能提供全面数据标注解决方案的专业公司。 拥有一支由经验丰富的数据标注师和垂直领域专家组成的团队&#xff0c;确保数据标注的质量和专业性。 自建平台功能一站式服务平台&#xff0c;提供从数据上传、标注、审核到导出的一站式服务&#xff0…

【Linux】包管理器、vim详解及简单配置

&#x1f680;个人主页&#xff1a;小羊 &#x1f680;所属专栏&#xff1a;Linux 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 前言一、包管理器1.1 apt1.2 yum 二、Linux编辑器——vim2.1 vim的三种模式2.2 vim普通模式常用命令2.2.1 移动…

【C++篇】启航——初识C++

引言 在编程语言的浩瀚海洋中&#xff0c;C以其强大的功能和灵活性脱颖而出。自1979年由Bjarne Stroustrup在贝尔实验室开发以来&#xff0c;C逐渐成为高性能应用和系统编程的首选语言。它不仅继承了C语言的高效特性&#xff0c;还引入了面向对象编程的概念&#xff0c;使得软…

9月28日

#ifndef WIDGET_H #define WIDGET_H //防止头文件重复包含#include <QWidget> #include<QIcon> #include<QDebug> #include<QPushButton> #include<QLabel> #include<QLineEdit>//ui_mywnd.h中的命名空间的声明 QT_BEGIN_NAMESPACE namesp…

多级侧边菜单(递归)

需要编写两个文件 aside-menu.vue 和 menu-item.vue menu-item.vue <script setup> defineOptions({name: MenuItem}) defineProps({menuList: Array}) </script><template><template v-for"menu of menuList"><!-- 如果当前有子菜单&a…

探索JMeterTools:一个Python驱动的JMeter脚本生成器

JMeterTools 简介 JMeterTools 是一个由 Python 编写的开源项目&#xff0c;旨在帮助测试人员快速生成 JMeter 测试脚本。通过简单的 Python API&#xff0c;用户可以方便地定义测试计划、线程组、HTTP 请求等&#xff0c;可以结合接口自动化测试项目&#xff0c;将接口自动化…

电子数据交换EDI 835 的处理

电子数据交换 (EDI) 835 电子数据交换 (EDI) 835 医疗保健索赔付款和汇款通知 电子数据交换 835 专注于交换医疗保健付款和福利信息。HIPAA 标准的更新版本 HIPAA 5010 指定了此交易集的格式、结构、数据字段和元素。医疗保险计划在与医疗保健提供者沟通以付款、提供福利…

如何快速降低文章重复率?试试芝士AI,智能降痕省时省力

论文查重的原理是连续出现13个字符类似就判断为重复部分&#xff0c;并将重复的内容计算到论文的重复率之中。 芝士AI官网&#xff1a;https://www.paperzz.cn/ 芝士AI论文查重系统会对内容进行分层处理&#xff0c;按照篇章&#xff0c;段落&#xff0c;句子等层级分别创建指…

江科大笔记——新建工程

STM32的开发方式 目前STM32的开发方式主要有基于寄存器的方式、基于标准库的方式&#xff08;库函数的方式&#xff09;、基于HAL库的方式&#xff1a; 基于库函数的方式是使用ST官方提供的封装好的函数&#xff0c;通过调用这些函数来间接地配置寄存器。基于HAL库的方式可以…

8000多道超全题库+高频题+大厂面试官原创题解+真实面经,绝对的求职秘密武器

正在找工作或者想要提升技术的程序员都可以去试试这款刷题神器【面试鸭】。你能想到的各种题目都被整理得明明白白&#xff0c;再也不用自己到处找七零八落的资料。8000多道超全题库高频题大厂面试官原创题解真实面经&#xff0c;绝对的求职秘密武器&#xff0c;扫码即可体验⬇…