项目一系列-第3章 若依框架入门

第3章 若依框架入门

3.1 若依框架概述

为什么要基于若依框架开发

  • 快速开发:能快速搭建一个应用框架,减少工作量。
  • 可定制化:提供丰富插件和拓展点,满足不同项目的特定需求。
  • 简化开发流程:框架提供常用的功能模块,如权限管理、数字字典、定时任务等。
  • 易于维护和管理:模块化设计,代码结构清晰。
  • 活跃开发社区:能够得到及时的技术支持和更新迭代。

总而言之,简化企业级应用开发。

什么是若依框架

一款基于Spring等开源框架搭建的企业级开发平台。

若依框架的主要作用

  • 模块化设计:每个模块都可以独立部署和升级。
  • 前后端分离:前端负责页面展示和用户交互,后端负责数据处理。
  • 权限管理:完善的用户权限管理,包含角色管理、菜单授权、部门管理等。
  • 代码生成器:快速生成前后端代码。
  • 定时任务:通过界面对定时任务进行管理与调度。
  • 易于集成:开发者可以根据项目需求灵活地选择合适的技术组件。

若依官网地址:https://ruoyi.vip/

若依框架分为四个版本

  • 前后端不分离版本RuoYi(单体)
  • 前后端分离版RuoYi-Vue(单体)本项目使用版本
  • 微服务版本RuoYi-Cloud
  • 移动端版RuoYi-App

本次入门主要讲解RuoYi-Vue前后端分离版本。

3.2 RuoYi-Vue前后端分离版本

RuoYi-Vue的文档地址:https://doc.ruoyi.vip/ruoyi-vue/

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

RuoYi-Vue的演示地址:http://vue.ruoyi.vip

3.2.2 RuoYi-Vue的技术选型

1、系统环境

  • Java EE 8(建议更改为 jdk 11)
  • Servlet 3.0
  • Apache Maven 3

2、主框架

  • Spring Boot 2.5.x
  • Spring Framework 5.2.x
  • Spring Security 5.2.x 安全框架

3、持久层

  • Apache MyBatis 3.5.x (建议更改为 MyBatis Plus)
  • Hibernate Validation 6.0.x 校验框架
  • Alibaba Druid 1.2.x

4、视图层

  • Vue 2.6.x(建议更改为 Vue3)
  • Axios 0.21.x
  • Element 2.15.x(建议更改为Element Plus)

3.2.3 环境搭建

基础软件准备

官方推荐优化升级
JDK >= 1.8 (推荐1.8版本)升级为JDK 11 资料中提供了安装包
Maven >= 3.0不需要安装,直接使用IDEA中自带的Maven即可
Node >= 12前端代码由vue2升级为vue3,需要Node 18及以上的版本
Mysql >= 5.7.0 (推荐5.7版本)升级为MySQL 8
Redis >= 3.0本地启动

在企业中,基础环境都部署在服务器,如MySQL、Redis等这些服务都是部署在linux服务器中。

假设基础服务信息如下:

软件名称说明
MySQL默认用户名:root,默认密码:heima123,端口:3306
Redis默认密码:123456,端口:6379

3.2.4 运行后端项目

RuoYi-Vue的代码下载地址:https://gitee.com/y_project/RuoYi-Vue

若依框架修改器下载地址:https://gitee.com/lpf_project/RuoYi-MT/releases

运行后端项目分几步

1、在开源网站下载RuoYi-Vue的源码

2、借助若依框架修改器来一键替换包名

3、在pom中,修改JDK的版本为11

4、在idea中,修改SDK、Java-Compiler、Maven、项目编码为utf-8

5、运行sql代码到自己指定的数据库中,如zzyl

6、在yml中,更改数据库配置信息和Redis配置信息

7、用Git进行版本控制

3.2.5 运行前端项目

前端项目的运行前提

如果是vue3,运行环境只能是 NodeJS 18及以上。

RuoYi-Vue3的代码下载地址:https://github.com/yangzongzhuan/RuoYi-Vue3 或者https://gitee.com/alexisyang/ruo-yi-vue3-master.git

运行前端项目分几步

1、用Vscode打开项目,进行依赖安装

2、在vite.config.js下,把目标地址baseUrl改为后端正确的服务地址

3、在vite.config.js下,前端监听端口改为88(由于Win10上的80端口会被系统进程占用)

4、若依赖已经安装完成,配置也已修改,则可以直接启动项目

5、用Git进行版本控制

3.2.6 定制化UI界面

为了做出自己的产品,我们需要解决如下问题:

1、浏览器标签页logo标识、标题

2、系统页面中的logo标识、标题

3、登录名称及背景图

4、去除源码地址 & 文档地址 &若依官网标识

在这里插入图片描述

在这里插入图片描述

浏览器标签页logo标识、标题
  • 标签页 logo 替换

替换前端项目中的public文件夹中原有的favicon.ico即可。

在这里插入图片描述

  • 标题更换(只是登录页的换了。。。)

找到根目录下的index.html文件,把title更换为自己想要的内容即可

在这里插入图片描述

  • 标题替换(连登录页的系统全称也换了)

若依的系统页面标题引用的是开发环境的配置,我们只需要修改开发的环境的VITE_APP_TITLE属性即可

如下图:
在这里插入图片描述

扩展阅读:

关于环境的文件一般有三个

  • .env.development 开发环境的配置,默认的环境
  • .env.production 生产环境
  • .env.staging 测试环境

在打包或启动项目的时候,可以加参数来使用不同的环境,需要参考package.json中的配置

  • 窗口内logo替换

找到当天资料中的logo文件,替换 src/assets/logo/logo.png文件
在这里插入图片描述

最终效果:
在这里插入图片描述

登录名称及背景图

登录名称和背景图,我们可以直接找到登录的组件进行修改即可

组件位置:src/views/login.vue

  • 登录名称

在这里插入图片描述

  • 背景图

在这里插入图片描述

背景图可以自行命名更换,并将背景图路径写好。

最终效果图:

在这里插入图片描述

去除源码地址 & 文档地址 & 若依官网标识
  • 利用菜单功能,去除若依官网菜单项目
  • 使用VS Code全局搜索功能(alt + Num3),去除右上角的源码地址文档地址
  • 最终效果:

在这里插入图片描述

主题UI风格调整

在目前的前端项目中,已经提供了非常便利的操作方式,可以切换主题的风格

操作:点击右上角的头像,可以找到**布局设置,**如下操作

在这里插入图片描述

在前端代码中也有对应的操作,文件位置:src/setting.js

export default {/*** 网页标题*/title: import.meta.env.VITE_APP_TITLE,/*** 侧边栏主题 深色主题theme-dark,浅色主题theme-light*/sideTheme: 'theme-dark',/*** 是否系统布局配置*/showSettings: true,/*** 是否显示顶部导航*/topNav: false,/*** 是否显示 tagsView*/tagsView: true,/*** 是否固定头部*/fixedHeader: false,/*** 是否显示logo*/sidebarLogo: true,/*** 是否显示动态标题*/dynamicTitle: false,/*** @type {string | array} 'production' | ['production', 'development']* @description Need show err logs component.* The default is only used in the production env* If you want to also use it in dev, you can pass ['production', 'development']*/errorLog: 'production'
}

更换主题颜色:

文件位置:src/store/modules/settings.js

在这里插入图片描述

theme: storageSetting.theme || '#00b8a0',

更换后的效果:

在这里插入图片描述

3.3 前后端项目结构

3.3.2 后端项目结构

后端项目结构

com.ruoyi 
├── ruoyi-admin       // 后台服务   存放 controller    
├── common            // 工具类
│       └── annotation                    // 自定义注解
│       └── config                        // 全局配置
│       └── constant                      // 通用常量
│       └── core                          // 核心控制
│       └── enums                         // 通用枚举
│       └── exception                     // 通用异常
│       └── filter                        // 过滤器处理
│       └── utils                         // 通用类处理
├── framework         // 框架核心
│       └── aspectj                       // 注解实现
│       └── config                        // 系统配置
│       └── datasource                    // 数据权限
│       └── interceptor                   // 拦截器
│       └── manager                       // 异步处理
│       └── security                      // 权限控制
│       └── web                           // 前端控制
├── ruoyi-generator   // 代码生成(可移除)
├── ruoyi-quartz      // 定时任务(可移除)
├── ruoyi-system      // 系统代码   存放 domain,mapper,service
├── ruoyi-xxxxxx      // 其他模块

通常会将自动生成的源代码放到各种自定义的模块中的java和resources目录下,便于维护和管理。

模块间的依赖关系

ruoyi-admin
ruoyi-framework
ruoyi-generator
ruoyi-quartz
ruoyi-common
ruoyi-system

在ruoyi-admin模块下的配置文件

  • i18n:国际化处理
  • META-INF:存储了项目的元信息(描述数据的数据),无需修改
  • mybatis:mybatis相关的配置信息
  • application.yml:项目中的核心配置
    • redis配置
  • application-druid.yml:数据库连接配置
    • 数据库配置(mysql)
  • banner.txt:默认的banner图标信息,项目启动,控制台打印显示
  • logback.xml:日志配置

表结构说明及关系

要到sql文件下导入该数据库表。

表名说明关系
gen_table代码生成业务表代码生成
gen_table_column代码生成业务表字段
sys_config参数配置表数据字典
sys_dict_data字典数据表
sys_dict_type字典类型表
sys_job定时任务调度表定时任务
sys_job_log定时任务调度日志表
sys_logininfor系统访问记录日志
sys_oper_log操作日志记录
sys_notice通知公告表
sys_menu菜单表权限
sys_dept部门表
sys_post岗位信息表
sys_role角色信息表
sys_role_dept角色和部门关联表
sys_role_menu角色和菜单关联表
sys_user用户信息表
sys_user_post用户与岗位关联表
sys_user_role用户和角色关联表

3.2.3 前端项目结构

前端项目结构

├── bin                        // 执行脚本
├── public                     // 公共文件
│   ├── favicon.ico            // favicon图标
├── src                        // 源代码
│   ├── api                    // 所有请求,后台的api接口,开发时经常操作的目录
│   ├── assets                 // 主题 字体等静态资源
│   ├── components             // 全局公用组件
│   ├── directive              // 全局指令
│   ├── layout                 // 布局
│   ├── plugins                // 通用方法
│   ├── router                 // 路由
│   ├── store                  // 全局 store管理
│   ├── utils                  // 全局公用方法
│   ├── views                  // view,存储vue组件,开发时经常操作的目录
│   ├── App.vue                // 根组件
│   ├── main.js                // 入口 加载组件 初始化等
│   ├── permission.js          // 权限管理
│   └── settings.js            // 系统配置
├── vite                       // 前端构建工具
├── .env.development           // 开发环境配置
├── .env.production            // 生产环境配置
├── .env.staging               // 测试环境配置
├── .gitignore                 // git 忽略项
├── LICENSE                    // 许可证
├── package-lock.json          // 锁定项目依赖的具体版本号
├── package.json               // 配置项目的信息、名称、版本号、描述信息等
├── pnpm-lock.yaml             // 锁定项目依赖的具体版本号
└── vite.config.js             // 用于配置 Vue.js 项目的全局选项,可修改后台访问接口的路径

src目录下的api和views目录是经常操作的,存放自动生成的前端代码

在vite.config.js文件

  • 别名

    • ~ 代表 ./
    • @代表src目录
  • 前端服务端口—> port: 80,咱们已经修改为88了

  • 后端服务地址—> target: baseUrl

    • const baseUrl = '``http://localhost:8080``' // 后端接口
  • 路径重写—> rewrite: (p) => p.replace(/^\/dev-api/, '')

3.4 代码生成功能分几步?

通常是分下面几步:

1、在若依管理系统的菜单管理中,添加该模块的上级菜单

2、开发该模块的建表语句,在数据库中建表

3、在若依管理系统的代码生成中,导入要生成代码的表结构

4、在若依管理系统的代码生成中,修改生成配置

  • 在基本信息中,一般修改作者信息

  • 在字段信息中,跟据页面原型修改字段信息

    • 下图是字段信息,详细描述如下图:

      字段信息描述
      字段列名表中的字段列名称
      字段描述字段的描述,自动读取建表语句中的comment信息,可根据实际情况更改
      物理类型数据库所对应的字段类型
      Java类型Java实体类中属性的类型,可改,例如,状态字段:Long类型可以修改为Integer
      Java属性Java实体类中所对应的属性名称
      插入新增的时候,需要插入的字段
      编辑修改的时候,需要插入的字段
      列表列表查询需要展示的字段
      查询列表查询,需要的条件字段
      查询方式与上面查询条件配合,选择对应的查询方式
      必填在插入和新增的时候,这个字段是否是必填项,可生成校验
      显示类型前端代码使用的组件类型,可根据实际情况选择
      字典类型字典管理是用来维护可枚举的数据的,如下拉框、单选按钮等,支持自定义
    • 一般只要注意tingint和int物理类型的Java类型是否是Integer即可。

    • 插入和编辑看原型的新增和编辑界面。

    • 列表和查询看原型的列表信息展示和搜索栏信息。

    • 必填看编辑界面的*号。

  • 在生成信息中(注意)

    • 生成包路径仔细填写
    • 生成模块名仔细填写
    • 记得填写上级菜单

5、部署数据库新增数据和前后端代码(压缩包的)

  • 运行insert语句
  • 部署后端代码(将业务代码都部署到独立的模块中)
    • 通常会将自动生成的源代码放到各种自定义的模块中的java和resources目录下,便于维护和管理。
    • 在父模块的pom中,管理该模块的版本
    • 在该模块中引入zzyl-common模块
    • 在zzyl-admin模块中引入新创建的该模块
    • 相同模块的相关代码,都移动到新模块中的相同包下
  • 部署前端代码
    • src目录下的api和views目录是经常操作的,存放自动生成的前端代码

3.5 代码解析(AI辅助)

Prompt:你是一个资深的后端/前端开发工程师,请在代码的核心编写代码注释帮助理解。

3.5.1 后端代码解析

自动生成的代码,不需要做任何修改,就可以做到基本的增删改查。

自动生成的代码符合Restful。

返回值有两种:

  • TableDataInfo:返回分页相关数据
  • AjaxResult:返回成功或失败的相应信息。

注解有:

  • @PreAuthorize :在方法上使用,判断当前登录人是否有权限访问该方法
  • @Log:在方法上使用,标记该方法要做日志记录

3.5.2 前端代码解析

例如:在服务管理nursing菜单下新增一个菜单(护理安排),配置如下:

  • 路由地址:arrange

  • 组件路径:nursing/arrange/index

在@/views/nursing/arrange目录中新增一个index.vue组件,该网页组件即可被访问到。

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

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

相关文章

WSL安装MuJoco报错——FatalError: gladLoadGL error

文章目录WSL中配置MuJoCo报错 FatalError: gladLoadGL error 的终极解决方案🔍 问题原因分析✅ 解决方案:切换至 EGL 渲染后端第一步:安装系统级依赖库第二步:使用 Conda 安装兼容的图形库第三步:设置环境变量以启用 E…

2025产品经理接单经验分享与平台汇总

产品和开发永远是一家,如此说来产品和开发接单的经验和平台其实大差不差,今天刚好看到后台有人咨询产品经理接单的问题,索性直接写一篇文章好了。 目录 一、产品经理接单的三个关键建议 1、能力产品化,比履历更重要 2、合同、…

BGP协议笔记

一、BGP协议(边界网关协议) 是一种用于自治系统间的动态路由协议,是一种外部网关(EGP)协议。负责在不同自治系统(AS)之间交换路由信息,目的是实现大规模网络的可扩展性、策略控制和稳定性。 自治系统AS:一组被进行统…

Ⅹ—6.计算机二级综合题27---30套

第27套 【填空题】 给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中小于平均值的数据依次移至数组的前部,大于等于平均值的数据依次移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 …

GDB 调试全方位指南:从入门到精通

在程序开发中,调试是定位和解决问题的核心环节。GDB (GNU Debugger) 作为一款功能强大的命令行调试器,是Linux环境下C/C开发者的必备利器。本文将系统讲解GDB的使用方法,涵盖基础操作到高级技巧,助你高效排错。一、基础准备&#…

Python:从元类到多态的实战指南

Python 作为一门灵活且强大的编程语言,其高级特性为开发者提供了极大的创造力和代码优化空间。本文将围绕元类、序列化、抽象类与多态等核心高级特性展开,结合丰富的实战代码示例,从原理到应用进行全方位解析,帮助你更深入地理解 …

LLM实战(三)——昇腾300i duo推理卡(NPU)大模型推理记录

npu推理环境配置:https://ascend.github.io/docs/sources/ascend/quick_install.html llama-factory适配的NPU说明:https://llamafactory.readthedocs.io/zh-cn/latest/advanced/npu_inference.html 一些CANN命令: 与cuda的对应关系 # 查看NPU信息 npu-smi info = nvidia-s…

【原创】锐捷AM5532宿舍AP接口状态智能巡检实战:Python脚本+Excel报表+QQ自动推送,某高校落地案例

⚡ 项目已稳定运行 180+ 天,累计巡检 14 万接口,邮件告警 0 漏报 📊 CSDN 质量分 5.0 标准:代码 + 图表 + 可落地 + 可复制, 欢迎收藏、点赞、评论三连! 一、背景 某 高校学生宿舍采用锐捷 RG-AM5532 系列交换机下挂无线 AP,高峰期 2.4 万终端并发。 网络中心痛点: …

用户、组和目录的磁盘配额

一、XFS_quota限制用户和组的容量(block)与文件数量(inode);限制block就限制了用户可以使用的磁盘容量,限制inode就可以限制用户新建的文件数量限制某一目录的最大磁盘配额(directory project&a…

[GESP202506 五级] 最大公因数

题目描述 对于两个正整数 a,ba,ba,b,他们的最大公因数记为 gcd⁡(a,b)\gcd(a,b)gcd(a,b)。对于 k>3k > 3k>3 个正整数 c1,c2,…,ckc_1,c_2,\dots,c_kc1​,c2​,…,ck​,他们的最大公因数为: gcd⁡(c1,c2,…,ck)gcd⁡(gcd⁡(c1,c2,……

实现一个进程池(精讲)

目录 写进程池前的理论扫盲 进程池的实现 写进程池前的理论扫盲 父进程创建子进程,父子俩都看见同一片资源,这片资源被俩进程利用,用来通信,这片资源就是管道,如图所示,能很好地诠释管道。 那么什么是进程…

【tips】css模仿矢量图透明背景

就像棋盘格background-image: linear-gradient(45deg, #f0f0f0 25%, transparent 25%), linear-gradient(-45deg, #f0f0f0 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #f0f0f0 75%), linear-gradient(-45deg, transparent 75%, #f0f0f0 75%);background-…

visual studio 历史版本安装

visual studio 历史版本安装 链接:Visual Studio 版本路线图 说明:该页面提供历史版本的发布说明及下载链接(需滚动至页面底部查找相关版本)。例如,2022 版本可能包含 17.0 至 17.14 等子版本,用户可根据需…

微软推出“愤怒计划“:利用AI工具实现恶意软件自主分类

微软周二宣布推出一款能够自主分析并分类软件的人工智能(AI)代理系统,旨在提升恶意软件检测能力。这款基于大语言模型(LLM)的自主恶意软件分类系统目前仍处于原型阶段,被微软内部代号命名为"愤怒计划&…

SOLIDWORKS Electrical:实现真正意义上的机电协同设计

随着市场的发展,企业面临两个方面的挑战:从业务和市场方面来看,为了在竞争中取得更大优势,需要更高质量的产品,较低的成本并缩短产品上市周期;从设计和技术方面来看,产品的集成度越来越高&#…

MySql_忘记了root密码怎么办

《MySql_忘记了root密码怎么办》在忘记root密码的时候,可以按以下步骤处理(以windows为例)。_1) 关闭正在运行的MySQL服务。_2) 打开DOS窗口,转到mysql\bin目录。_3) 输入mysqld –skip-grant-tables 回车。–skip-grant-tables 的…

wstool和catkin_tools工具介绍

好的,我们来详细介绍一下 python3-wstool 和 python3-catkin-tools 这两个在 ROS (Robot Operating System) 开发中非常重要的工具,以及它们之间的关系。 首先,python3- 这个前缀表示这些是针对 Python 3 的软件包版本,这在现代 R…

吴恩达 深度学习笔记

最近在看吴恩达深度学习系列课程,简单做一个基本框架笔记。 如感兴趣或了解更多内容,推荐看原课程 以前也做过一些与机器学习和深度学习有关的笔记,过分重复的就一笔带过了。 01 第一门课 神经网络和深度学习 1.1 第一周:深度学习…

2025数字马力一面面经(社)

2025数字马力一面面经(社) 日常自我介绍js数据类型有哪些(报完菜名后简单分析了一下使用引用类型)谈谈对const、var、let的理解(变量提升、let和const的主要区别、使用const命名引用类型的时可以对引用类型进行操作&am…