若依基本使用及改造记录
若依框架想必大家都了解得不少,不可否认这是一款及其简便易用的框架。
在某种情况下(比如私活)使用起来可谓是快得一匹。
在这里小兵结合自身实际使用情况,记录一下我对若依框架的使用和改造情况。
一、源码下载
前往码云进行下载。(vue前后端分离版)
RuoYi-Vue: 🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本
下载后是下面图片的样子,除了 ruoyi-ui 是前端项目外,其它都是后端代码。
可以自行创建两个 git 项目如 ry-admin 、 ry-web,将后端源代码、前端源代码分别上传到自己的git 项目中方便后面管理。
二、源码启动
2.1 修改数据库连接
查看: ruoyi-admin\src\main\resources\application-druid.yml 中的配置,可看到其默认配置如下。
master:url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8username: rootpassword: password
把 库名 ry-vue 和 密码 password 换成自己的库名和密码.
然后执行项目初始化sql: sql/ry_20240629.sql
2.2 启动后端服务
修改完数据库连接/redis连接并初始化sql后,找到 com/ruoyi/RuoYiApplication.java 右键启动
启动成功后,可以访问 8080 端口进行验证。
2.3 启动前端服务
先安装依赖 npm i
安装完成后启动 npm run dev
访问 localhost 使用 admin/admin123 可以看到初版页面。
默认的首页是若依框架的介绍页面,一般不会使用。可以先用若依提供的 views/index_v1.vue 中的内容替换 views/index.vue 的内容,有点首页的样子先。
右上角的工具栏,一般只需要保留全屏功能即可。
全局搜索“源码地址”,将无关功能注释或删掉,保留所需即可。
若依官网的菜单也通过 系统管理-菜单管理 删除。
验证码可以在application.yml中将方式修改为字符验证 captchaType: char
三、原始CURD使用
若依提供了基本的代码生成功能。
以如下测试表 demo1 为例
CREATE TABLE `demo1` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',`name` varchar(255) DEFAULT NULL COMMENT '用户名',`age` int(11) DEFAULT NULL COMMENT '年龄',`birthday` date DEFAULT NULL COMMENT '出生日期',`create_time` datetime DEFAULT NULL,`create_by` varchar(255) DEFAULT NULL,`update_time` datetime DEFAULT NULL,`update_by` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='测试示例表1';
执行以上sql后,在前端页面 系统工具-代码生成 中生成对应代码,并使用。
将生成的 controller/service/mapper/domain/js/vue 代码复制到相应位置,并执行对应sql后,重启项目,可以使用对该表在页面中进行增删改查功能的使用。
四、使用mybatisPlus与lombok
一般项目中可以使用 mybatisPlus 和 lombok 来加速开发,代码更为简便和优雅。若依中未进行使用。可以对其进行改造。
在 ruoyi-common/pom.xml 中导入相关依赖:
<lombok.version>1.18.20</lombok.version><mybatis-plus.version>3.5.1</mybatis-plus.version><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis-plus.version}</version></dependency>
将mybatis改为mybatisPlus:
修改com/ruoyi/framework/config/MyBatisConfig.java 中的 SqlSessionFactoryBean 为 MybatisSqlSessionFactoryBean
final MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean();
再以上示测试表复制为 demo2 为例,对应实体如下:
package com.ruoyi.system.domain;import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;/*** 测试示例2对象 demo2** @author ruoyi* @date 2025-01-28*/
@Data
public class Demo2
{private static final long serialVersionUID = 1L;/** id */private Long id;/** 用户名 */@Excel(name = "用户名")private String name;/** 年龄 */@Excel(name = "年龄")private Long age;/** 出生日期 */@JsonFormat(pattern = "yyyy-MM-dd")@Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")private Date birthday;/** 创建者 */private String createBy;/** 创建时间 */@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")private Date createTime;/** 更新者 */private String updateBy;/** 更新时间 */@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")private Date updateTime;}
对应mapper.xml 多继承 BaseMapper:
public interface Demo2Mapper extends BaseMapper<Demo2> {...
}
对应 service.java 多继承 IService:
public interface IDemo2Service extends IService<Demo2> {...
}
对应 serviceImpl.java 多继承 ServiceImpl:
public class Demo2ServiceImpl extends ServiceImpl<Demo2Mapper, Demo2> implements IDemo2Service {....
}
为了使自动生成的代码也达到使用mybatisPlus的效果,需要修改 ruoyi-generator\src\main\resources\vm 对应的生成代码模板。