ruoyi-admin 模块解析
1. 模块概述
ruoyi-admin 是基于 Spring Boot 的后台管理系统入口模块,作为整个应用程序的启动入口和配置中心。该模块集成了多个功能模块,提供了完整的企业级应用解决方案。 (注意:入口模块不要放业务功能)
- 应用ID:
ryplus_uni
- 应用名称: ryplus-uni后台管理
- 运行端口: 5500
- 版本: 动态版本
${revision}
2. 核心文件分析
2.1 主启动类
文件: RuoyiPlus.java
java
@SpringBootApplication
public class RuoyiPlus {
public static void main(String[] args) {
// Spring应用启动配置
}
}
核心功能:
- Spring Boot 应用启动入口
- 配置应用启动性能监控 (BufferingApplicationStartup)
- 启动完成后显示友好的成功提示信息
- 集成了应用名称、环境信息、端口等启动信息展示
2.2 Web容器部署配置
文件: RuoyiPlusServletInitializer.java
作用:
- 支持传统 WAR 包部署到外部 Servlet 容器
- 继承
SpringBootServletInitializer
- 适用于 Tomcat、Jetty 等外部容器部署场景
3. 配置文件详解
3.1 主配置文件
文件: application.yml
应用基础配置
yaml
app:
id: ryplus_uni
title: ryplus-uni后台管理
version: ${revision}
copyright-year: 2025
多租户配置
yaml
tenant:
enable: true
excludes: [] # 排除表配置
服务器配置
yaml
server:
port: 5500
servlet:
context-path: /
undertow:
max-http-post-size: -1
buffer-size: 512
threads:
io: 8
worker: 256
Spring框架配置
- 虚拟线程: 启用 JDK21 虚拟线程支持
- 文件上传: 最大单文件 10MB,总请求 20MB
- 国际化: 支持 i18n 多语言
- JSON序列化: Jackson 配置
3.2 日志配置
文件: logback-plus.xml
日志策略
- 开发环境: 仅控制台输出
- 生产环境: 控制台 + 文件输出
- 日志分级: INFO、ERROR 分别存储
- 异步处理: 使用 AsyncAppender 提升性能
- 滚动策略: 按天滚动,错误日志保留60天
日志文件分类
sys-console.log
: 控制台日志备份 (保留1天)sys-info.log
: INFO级别日志 (保留60天)sys-error.log
: ERROR级别日志 (保留60天)
3.3 国际化配置
文件: messages.properties
消息分类
- 通用验证消息: 必填验证、长度验证等
- 用户认证消息: 登录、注册、密码重试等
- 权限控制消息: 各种操作权限提示
- 文件上传消息: 文件大小、类型限制等
- 租户管理消息: 租户状态、同步操作等
4. 核心功能配置
4.1 安全认证 (Sa-Token)
yaml
sa-token:
token-name: Authorization
is-concurrent: true # 允许并发登录
is-share: false # 每次登录新建token
jwt-secret-key: uDkkASPQVN5iR4eN
4.2 验证码配置
yaml
captcha:
type: MATH # 数学计算验证码
category: CIRCLE # 圆圈干扰
numberLength: 1 # 数字验证码位数
charLength: 4 # 字符验证码长度
4.3 数据加密
- 数据库加密: 支持字段级加密 (可选)
- API接口加密: RSA 非对称加密
- 默认算法: BASE64 编码
4.4 数据库配置 (MyBatis-Plus)
yaml
mybatis-plus:
enableLogicDelete: true # 全局逻辑删除
mapperPackage: plus.ruoyi.**.mapper
typeAliasesPackage: plus.ruoyi.**.domain.entity
global-config:
dbConfig:
idType: ASSIGN_ID # 雪花算法ID
5. 模块依赖关系
5.1 核心业务模块
xml
<!-- 系统核心功能模块 -->
<dependency>
<groupId>plus.ruoyi</groupId>
<artifactId>ruoyi-system</artifactId>
</dependency>
<!-- 业务功能模块 -->
<dependency>
<groupId>plus.ruoyi</groupId>
<artifactId>ruoyi-business</artifactId>
</dependency>
5.2 功能增强模块
xml
<!-- 代码生成模块 -->
<dependency>
<groupId>plus.ruoyi</groupId>
<artifactId>ruoyi-generator</artifactId>
</dependency>
5.3 监控工具
xml
<!-- Spring Boot Admin 客户端 -->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
6. 高级特性
6.1 消息推送
- SSE: 默认启用服务器推送事件
- WebSocket: 可选的双向通信 (默认关闭)
6.2 分布式锁
yaml
lock4j:
acquire-timeout: 3000 # 获取锁超时时间
expire: 30000 # 锁过期时间
6.3 线程池配置
- 虚拟线程: JDK21 支持 (推荐)
- 传统线程池: 可配置队列容量和空闲时间
6.4 API文档 (SpringDoc)
- 多模块分组: business、system、generator
- 安全认证: ApiKey 方式
- 自动生成: 支持 OpenAPI 3.0
6.5 系统监控 (Actuator)
- 健康检查: 详细健康信息展示
- 日志监控: 外部日志文件访问
- 端点暴露: 暴露所有监控端点
7. 安全防护
7.1 XSS防护 (如果富文本标签被过滤掉则需要将相关接口在此配置处排除)
yaml
xss:
enabled: true
excludeUrls:
- /system/notice/*
7.2 请求控制
- 重复提交防护: 防止表单重复提交
- 访问频率限制: 防止恶意刷新
7.3 密码安全
yaml
user:
password:
maxRetryCount: 5 # 最大错误次数
lockTime: 10 # 锁定时间(分钟)
8. 部署特性
8.1 多环境支持
- 开发环境: 仅控制台日志
- 生产环境: 完整日志体系 + 文件存储
- 配置切换: 通过
@profiles.active@
动态切换
8.2 容器化支持
- 内嵌容器: Undertow (高性能)
- 外部容器: 支持 WAR 包部署
- Docker友好: 配置文件外置支持
9. 总结
ruoyi-admin 模块是一个功能完整的企业级应用启动模块