熟悉RuoYi-Vue-Plus4.8.2-后端

项目结构

复制代码
RuoYi-Vue-Plus-api/
├── ruoyi-admin/              # 启动模块,Web入口
│   ├── src/main/java/com/ruoyi/
│   │   ├── RuoYiApplication.java  # 应用启动类
│   │   └── web/controller/        # 控制器层
│   │       ├── common/            # 通用功能
│   │       ├── monitor/           # 系统监控
│   │       └── system/            # 系统管理
│   └── src/main/resources/
│       ├── application.yml        # 主配置文件
│       ├── application-dev.yml    # 开发环境配置
│       ├── application-prod.yml   # 生产环境配置
│       └── mapper/                # MyBatis映射文件
├── ruoyi-common/            # 公共模块,提供共享工具和配置
│   └── src/main/java/com/ruoyi/common/
│       ├── annotation/            # 自定义注解
│       ├── captcha/               # 验证码功能
│       ├── config/                # 配置类
│       ├── constant/              # 常量定义
│       ├── convert/               # 转换器
│       ├── core/                  # 核心功能
│       ├── encrypt/               # 加密工具
│       ├── enums/                 # 枚举定义
│       ├── excel/                 # Excel处理
│       ├── exception/             # 异常处理
│       ├── filter/                # 过滤器
│       ├── helper/                # 辅助类
│       ├── jackson/               # JSON处理
│       ├── translation/           # 翻译功能
│       ├── utils/                 # 工具类
│       └── xss/                   # XSS防护
├── ruoyi-framework/         # 框架核心模块
│   └── src/main/java/com/ruoyi/framework/
│       ├── aspectj/               # 切面
│       ├── config/                # 框架配置
│       ├── encrypt/               # 加密配置
│       ├── handler/               # 处理器
│       ├── interceptor/           # 拦截器
│       ├── jackson/               # JSON处理
│       ├── listener/              # 监听器
│       ├── manager/               # 管理器
│       ├── satoken/               # Sa-Token认证
│       └── web/                   # Web相关
├── ruoyi-system/           # 系统核心业务模块
│   └── src/main/java/com/ruoyi/system/
│       ├── domain/                # 领域模型
│       │   ├── bo/                # 业务对象
│       │   └── vo/                 # 视图对象
│       ├── mapper/                # 数据访问层
│       ├── service/               # 服务层
│       │   ├── impl/               # 服务实现
│       │   └── ISys*Service.java   # 服务接口
│       └── runner/                # 启动任务
├── ruoyi-generator/        # 代码生成模块
├── ruoyi-job/              # 定时任务模块
├── ruoyi-oss/              # 对象存储模块
├── ruoyi-sms/              # 短信服务模块
├── ruoyi-extend/          # 扩展模块
│   ├── ruoyi-monitor-admin/      # 监控管理
│   └── ruoyi-xxl-job-admin/      # 任务调度管理
└── ruoyi-demo/             # 演示模块

yml配置

  1. application.yml:这是主配置文件,包含应用程序的基本配置和默认设置。它通常包含所有环境通用的配置。

  2. application-dev.yml:这是开发环境配置文件,"dev"代表"development"(开发)。它包含特定于开发环境的配置,如数据库连接、API端点等。

  3. application-prod.yml:这是生产环境配置文件,"prod"代表"production"(生产)。它包含特定于生产环境的配置,通常与开发环境有显著差异,比如更严格的性能和安全设置。

这种配置文件结构允许开发者根据不同的环境(开发、测试、生产等)使用不同的配置,而无需修改代码。Spring Boot会根据当前激活的环境(profile)自动加载相应的配置文件。

配置文件位置

  • 如果设置为dev,则@profiles.active@会被替换为dev,Spring Boot会加载application-dev.yml配置文件

  • 如果设置为prod,则@profiles.active@会被替换为prod,Spring Boot会加载application-prod.yml配置文件

移除一个模块

以Admin监控模块为例

移除模块

删除

删除监控配置、监控端点、子模块列表、依赖、监控中心配置

监控中心

子模块

依赖

放行目录

重新运行,运行结果

前端页面删除

development、production删除监控地址

彻底空了

新建一个模块

创建

添加通用工具依赖

声明版本

在ruoyi-admin/pom.xml

  • <dependency>标签表明admin模块依赖于service模块。当执行Maven构建命令(如mvn clean package)时,Maven会确保service模块的类被包含在admin模块的最终构建产物中。

在com.ruoyi包下创建新的类

复制代码
package com.ruoyi;

import com.ruoyi.common.core.domain.R;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@RequestMapping("core/nocheck")
public class NocheckController {

    /**
     * 测试方法
     */
    @GetMapping("test1")
    public R<Void> test1() {
        return R.ok();
    }
}
复制代码
package com.ruoyi;

import cn.dev33.satoken.annotation.SaIgnore;
import com.ruoyi.common.core.domain.R;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RequestMapping("core/nocheck")
@RestController
public class NocheckController {

    /**
     * 测试方法
     */
    @SaIgnore
    @GetMapping("test1")
    public R<Void> test1() {
        return R.ok();
    }
//    http://localhost:8080/core/nocheck/test1
}

操作成功

代码生成

修改成功

生成代码,

重启后,复制sys_dept,命名为t_dept

导入t_dept表

再次生成代码

手动

新建查询将deptMenu.sql插入运行

后端复制粘贴

前端复制粘贴

views同理

显示成功

菜单管理处修改

接口文档springdoc和apifox的配合使用

复制代码
http://localhost:8080/v3/api-docs/3.代码生成模块

同理导入剩下2个

请求头

前置url

成功

satoken简介与pc端登录调试

Sa-Token

ruoyi-system/src/main/java/com/ruoyi/system/service/SysLoginService.java

java 复制代码
    /**
     * 登录验证方法
     * 该方法用于处理用户登录请求,包括验证码验证、用户验证、密码校验、生成token等功能
     *
     * @param username 用户名
     * @param password 密码
     * @param code     验证码
     * @param uuid     唯一标识,用于验证码验证
     * @return 结果
     */
    public String login(String username, String password, String code, String uuid) {
        // 获取验证码是否启用的配置
        boolean captchaEnabled = configService.selectCaptchaEnabled();
        // 验证码开关
        if (captchaEnabled) {
            // 验证验证码是否正确
            validateCaptcha(username, code, uuid);
        }
        // 框架登录不限制从什么表查询 只要最终构建出 LoginUser 即可 根据用户名加载用户信息
        SysUser user = loadUserByUsername(username);
        // 检查登录状态,包括密码验证
        checkLogin(LoginType.PASSWORD, username, () -> !BCrypt.checkpw(password, user.getPassword()));
        // 此处可根据登录用户的数据不同 自行创建 loginUser 属性不够用继承扩展就行了
        // 构建登录用户对象
        LoginUser loginUser = buildLoginUser(user);
        // 生成token并保存登录状态
        LoginHelper.loginByDevice(loginUser, DeviceType.PC);

        // 记录登录成功信息
        recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"));
        // 记录用户登录信息
        recordLoginInfo(user.getUserId(), username);
        // 返回生成的token值
        return StpUtil.getTokenValue();
    }
相关推荐
xyx-3v19 小时前
SPI四种工作模式
stm32·单片机·嵌入式硬件·学习
老虎062719 小时前
黑马点评学习笔记02(Mabatis—plus)
笔记·学习
【0931】19 小时前
2024.6卷一阅读短语
学习
qiuiuiu41319 小时前
正点原子RK3568学习日志6-驱动模块传参
linux·c语言·开发语言·单片机·学习
xiaolu28919 小时前
k8s学习 - 命令记录
学习·docker·kubernetes
岁岁岁平安20 小时前
python基本数据类型、字典、 集合、条件与循环控制、函数(3)
python·学习·集合·函数·字典·python3
无妄无望20 小时前
docker学习 (3)网络与防火墙
网络·学习·docker
●VON21 小时前
重生之我在大学自学鸿蒙开发第七天-《AI语音朗读》
学习·华为·云原生·架构·harmonyos
程序员东岸1 天前
避坑修链表:从顺序表到单链表的那点事儿(含可跑示例与小项目串联)
数据结构·笔记·学习·程序人生·链表