项目结构
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配置
-
application.yml:这是主配置文件,包含应用程序的基本配置和默认设置。它通常包含所有环境通用的配置。
-
application-dev.yml:这是开发环境配置文件,"dev"代表"development"(开发)。它包含特定于开发环境的配置,如数据库连接、API端点等。
-
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端登录调试
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();
}