Skip to content

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 模块是一个功能完整的企业级应用启动模块