Skip to content

基础设施 (Infra) 模块操作手册

模块概述

基础设施模块(Infrastructure Module)提供系统运行所需的基础服务,包括文件管理、代码生成、数据源管理、API日志、定时任务、参数配置等功能。本模块为其他业务模块提供底层支撑。

功能导航

快速开始

访问地址

模块依赖

Infra 模块依赖以下服务:

  1. System 模块(必选)- 提供用户、权限管理

启动顺序: System → Infra


文件管理

功能说明

文件管理提供统一的文件存储服务,支持本地存储、OSS存储、MINIO存储等多种存储方式,支持文件的分类管理、权限控制。

存储方式

存储方式说明适用场景
本地存储存储在服务器本地磁盘开发环境、小规模部署
阿里云OSS存储在阿里云对象存储生产环境、大规模部署
MINIO开源对象存储私有化部署
腾讯云COS腾讯云对象存储腾讯云环境
七牛云七牛云存储对象存储服务

操作步骤

1. 文件上传

路径: 基础设施 → 文件管理 → 文件上传

操作说明:

  1. 点击「上传文件」按钮

  2. 选择存储位置:

    • 存储方式: 选择存储方式(本地/OSS/MINIO等)
    • 文件分类: 选择或创建文件分类
    • 存储路径: 自动生成或手动指定
  3. 选择文件:

    • 支持单文件上传
    • 支持多文件上传
    • 支持拖拽上传
    • 文件大小限制:默认100MB(可配置)
  4. 填写文件信息(可选):

    • 文件名称: 显示名称(默认使用原文件名)
    • 文件描述: 文件说明
    • 文件标签: 便于检索
  5. 点击「确定」开始上传

注意事项:

  • 上传完成后会生成唯一的文件标识
  • 同名文件会自动重命名
  • 上传文件会记录到文件管理日志

2. 文件下载

路径: 基础设施 → 文件管理 → 文件列表

操作说明:

  1. 在文件列表中找到要下载的文件
  2. 点击「下载」按钮
  3. 文件下载到本地

注意事项:

  • 下载权限受文件权限控制
  • 支持断点续传

3. 文件预览

路径: 基础设施 → 文件管理 → 预览

支持的预览格式:

  • 图片:jpg, png, gif, bmp, webp
  • 文档:pdf, doc, docx, xls, xlsx, ppt, pptx, txt
  • 视频:mp4, avi, mov
  • 音频:mp3, wav
  • 代码:java, js, html, css, json, xml

操作说明:

  • 点击「预览」按钮
  • 在弹窗中预览文件
  • 支持全屏预览

4. 文件管理

路径: 基础设施 → 文件管理 → 文件列表

查询条件:

  • 文件名称(模糊)
  • 文件分类
  • 文件类型
  • 上传时间范围
  • 上传人

文件操作:

  • 查看详情: 查看文件详细信息
  • 修改信息: 修改文件名称、描述、标签
  • 移动文件: 移动到其他分类
  • 复制文件: 复制文件
  • 删除文件: 删除文件(可恢复)
  • 分享文件: 生成分享链接

5. 文件分类管理

路径: 基础设施 → 文件管理 → 分类管理

操作说明:

  1. 点击「新增分类」
  2. 填写分类信息:
    • 分类名称: 分类名称
    • 父级分类: 选择父级分类
    • 排序: 排序号
    • 权限: 可见范围(全部/指定部门/指定用户)
  3. 点击「确定」保存

预置分类:

  • 文档资料
  • 图片资源
  • 视频资源
  • 软件安装包
  • 其他文件

6. 分享文件

路径: 基础设施 → 文件管理 → 分享

操作说明:

  1. 在文件列表中点击「分享」
  2. 配置分享参数:
    • 分享方式: 链接分享/密码分享
    • 有效期: 1天/7天/30天/永久
    • 访问次数: 无限制/限制次数
    • 提取密码: 设置密码(可选)
  3. 点击「生成链接」
  4. 复制分享链接

注意事项:

  • 分享链接包含文件标识
  • 密码保护需要输入密码才能访问
  • 过期后链接自动失效

代码生成

功能说明

代码生成功能可以根据数据库表结构快速生成单表(增删改查)代码,包括后端代码(Controller、Service、Mapper、Entity)和前端代码(Vue页面、API接口)。

操作步骤

1. 导入表

路径: 基础设施 → 代码生成 → 导入表

操作说明:

  1. 选择数据源(默认为当前数据源)
  2. 点击「导入表」按钮
  3. 系统自动读取数据库表
  4. 勾选要生成代码的表
  5. 点击「确定」导入

注意事项:

  • 表会读取表结构、字段信息、注释
  • 建议表有规范的注释

2. 配置生成信息

路径: 基础设施 → 代码生成 → 编辑

基本信息:

  • 表名称: 数据库表名
  • 表描述: 表的描述
  • 模块名称: 生成的代码所属模块
  • 业务名称: 业务名称
  • 功能名称: 功能名称
  • 作者: 开发者姓名
  • 包路径: 代码的包路径
  • 生成路径: 代码生成路径

字段信息:

字段设置说明
字段名称数据库字段名
字段描述字段显示名称
字段类型Java类型
Java属性Java属性名
是否主键是/否
是否自增是/否
必填是/否
显示类型表单展示方式(文本框、下拉框等)
查询方式查询方式(=、!=、>、<、LIKE、BETWEEN)
是否查询是否作为查询条件
是否必填是否必填
显示类型列表显示、表单显示、两者

显示类型说明:

  • 文本框: 单行文本输入
  • 文本域: 多行文本输入
  • 下拉框: 固定选项选择
  • 单选框: 单选按钮组
  • 复选框: 复选框组
  • 日期选择: 日期选择器
  • 日期时间: 日期时间选择器
  • 数字输入: 数字输入框
  • 文件上传: 文件上传组件
  • 富文本: 富文本编辑器
  • 图片上传: 图片上传组件

3. 生成代码

路径: 基础设施 → 代码生成 → 生成代码

操作说明:

  1. 配置完成后,点击「生成代码」
  2. 选择生成内容:
    • 后端代码: Controller、Service、ServiceImpl、Mapper、Mapper XML、Entity
    • 前端代码: Vue页面、API接口
    • 菜单SQL: 菜单插入SQL
  3. 点击「确定」生成代码
  4. 下载代码包(ZIP格式)

4. 使用生成的代码

后端代码:

  1. 解压代码包
  2. 将 Entity 复制到 entity 包
  3. 将 Mapper、Mapper XML 复制到 mapper 包
  4. 将 Service、ServiceImpl 复制到 service 包
  5. 将 Controller 复制到 controller 包
  6. 根据需要调整代码

前端代码:

  1. 解压代码包
  2. 将 Vue 文件复制到 views 目录
  3. 将 API 文件复制到 api 目录
  4. 在菜单管理中添加菜单
  5. 刷新页面查看效果

菜单SQL:

  1. 复制生成的菜单SQL
  2. 在数据库中执行
  3. 刷新菜单缓存

数据源管理

功能说明

数据源管理用于配置和管理多个数据源,支持动态切换数据源,实现读写分离、多租户数据隔离等功能。

操作步骤

1. 新增数据源

路径: 基础设施 → 数据源管理 → 新增

操作说明:

  1. 点击「新增」按钮
  2. 填写数据源信息:
    • 数据源名称: 数据源名称
    • 数据源编码: 数据源唯一标识
    • 数据库类型: MySQL/Oracle/SQL Server/PostgreSQL
    • 驱动类: JDBC驱动类
    • 连接地址: 数据库连接地址
    • 端口: 数据库端口
    • 数据库名: 数据库名称
    • 用户名: 数据库用户名
    • 密码: 数据库密码
    • 初始连接数: 初始连接数(默认5)
    • 最大连接数: 最大连接数(默认100)
    • 最大等待时间: 最大等待时间(毫秒)
  3. 点击「测试连接」验证配置
  4. 点击「确定」保存

注意事项:

  • 数据源编码必须唯一
  • 建议先测试连接再保存
  • 密码会加密存储

2. 编辑/删除数据源

路径: 基础设施 → 数据源管理

操作说明:

  • 点击「编辑」修改数据源配置
  • 点击「删除」删除数据源(需要确认)

3. 使用数据源

在代码中切换数据源:

java
// 使用@DS注解切换数据源
@DS("slave")  // 使用编码为slave的数据源
public List<User> selectUserList() {
    return userMapper.selectList(null);
}

// 不使用注解使用默认数据源
public List<User> selectUserListDefault() {
    return userMapper.selectList(null);
}

常见场景:

  • 读写分离:写操作使用主库,读操作使用从库
  • 多租户:不同租户使用不同数据源
  • 分库分表:根据业务路由到不同数据源
  • 历史数据归档:历史数据使用单独数据源

API日志

功能说明

API日志记录所有接口调用信息,包括请求地址、请求参数、响应结果、调用时长、异常信息等,用于接口监控和问题排查。

操作步骤

1. 查看API日志

路径: 基础设施 → API日志 → 日志列表

显示信息:

  • 日志编号
  • 接口名称
  • 请求方法(GET/POST/PUT/DELETE)
  • 请求路径
  • 操作模块
  • 操作类型
  • 调用人
  • 调用时间
  • 调用耗时
  • 操作状态(成功/失败)
  • 错误消息

查询条件:

  • 接口名称(模糊)
  • 操作模块
  • 操作类型
  • 调用人
  • 调用状态
  • 时间范围
  • 耗时范围

2. 查看日志详情

路径: 基础设施 → API日志 → 查看

详情信息:

请求信息:

  • 请求路径
  • 请求方法
  • 请求头
  • 请求参数
  • 请求体

响应信息:

  • 响应状态码
  • 响应头
  • 响应体

其他信息:

  • 调用人
  • 调用时间
  • 调用耗时
  • 客户端IP
  • 用户代理
  • 异常信息

3. 日志统计

路径: 基础设施 → API日志 → 统计分析

统计维度:

  • 按模块统计
  • 按接口统计
  • 按用户统计
  • 按状态统计
  • 按时间统计

统计指标:

  • 调用次数
  • 平均耗时
  • 最大耗时
  • 最小耗时
  • 成功率
  • 失败率

4. 日志清理

路径: 基础设施 → API日志 → 日志清理

操作说明:

  1. 点击「日志清理」
  2. 选择清理方式:
    • 按时间清理: 清理N天前的日志
    • 按数量清理: 只保留最近N条记录
  3. 点击「确定」执行清理

注意事项:

  • 清理前建议备份
  • 清理操作不可恢复

定时任务

功能说明

定时任务基于 XXL-Job 实现,支持任务的动态配置、调度执行、监控告警等功能。

操作步骤

1. 新增定时任务

路径: 基础设施 → 定时任务 → 新增

操作说明:

  1. 点击「新增」按钮
  2. 填写任务信息:
    • 任务名称: 任务的名称
    • 任务分组: 任务分组(系统/业务)
    • Spring Bean名称: Bean的名称
    • 执行方法: 执行的方法名
    • Cron表达式: 任务执行时间表达式
    • 执行策略: 立即执行/秒级执行/分片广播
    • 失败重试次数: 失败后重试次数
    • 超时时间: 任务超时时间(秒)
    • 任务说明: 任务说明
    • 负责人: 任务负责人
    • 报警邮件: 任务失败时接收报警的邮箱
    • 执行状态: 暂停/运行
  3. 点击「确定」保存

Cron表达式示例:

表达式说明
0 0 2 * * ?每天凌晨2点执行
0 0/5 * * * ?每5分钟执行一次
0 0 12 * * ?每天中午12点执行
0 15 10 ? * MON-FRI周一到周五上午10:15执行
0 15 10 15 * ?每月15号上午10:15执行
0 0 10,14,16 * * ?每天10点、14点、16点执行

2. 执行任务

路径: 基础设施 → 定时任务 → 执行一次

操作说明:

  1. 在任务列表中选择任务
  2. 点击「执行一次」
  3. 系统立即执行任务
  4. 可在执行日志中查看执行结果

3. 查看执行日志

路径: 基础设施 → 定时任务 → 执行日志

日志信息:

  • 任务名称
  • 执行时间
  • 执行时长
  • 执行结果(成功/失败)
  • 执行日志
  • 异常信息

4. 任务管理操作

暂停/恢复:

  • 暂停:暂停任务调度
  • 恢复:恢复任务调度

编辑:

  • 修改任务配置
  • 修改后需要保存

删除:

  • 删除任务定义
  • 需要确认操作

复制:

  • 快速创建相似任务

系统配置

功能说明

系统配置用于管理系统的参数配置,支持动态修改,无需重启服务。

配置分类

配置类型说明示例
系统配置系统级别的配置系统名称、版本号
业务配置业务相关的配置审批规则、业务参数
接口配置第三方接口配置短信接口、邮件接口
存储配置存储相关配置OSS配置、MINIO配置

操作步骤

1. 修改配置

路径: 基础设施 → 系统配置 → 配置列表

操作说明:

  1. 在配置列表中找到要修改的配置
  2. 点击「编辑」
  3. 修改配置值
  4. 点击「确定」保存

注意事项:

  • 某些配置修改后需要清除缓存
  • 涉及连接地址的配置修改后需要重启服务
  • 修改前建议记录原值

2. 常用配置说明

用户配置:

  • sys.user.initPassword: 用户初始密码
  • sys.user.passwordMaxLength: 密码最大长度
  • sys.user.passwordExpire: 密码过期时间(天)

系统配置:

  • sys.name: 系统名称
  • sys.version: 系统版本
  • sys.captchaEnabled: 是否开启验证码

文件配置:

  • file.upload.path: 文件上传路径
  • file.upload.maxSize: 文件最大大小(MB)

邮件配置:

  • mail.smtp.host: SMTP服务器地址
  • mail.smtp.port: SMTP端口
  • mail.smtp.username: 邮箱用户名
  • mail.smtp.password: 邮箱密码
  • mail.smtp.from: 发件人地址

服务监控

功能说明

服务监控提供服务器和应用的实时监控信息,包括CPU、内存、磁盘、网络等。

监控指标

服务器信息

路径: 基础设施 → 服务监控 → 服务器信息

显示信息:

  • 服务器名称
  • 操作系统
  • 系统架构
  • 服务器IP
  • JVM信息
  • 启动时间

CPU监控

监控指标:

  • CPU使用率
  • CPU核心数
  • 用户使用率
  • 系统使用率
  • 当前空闲率

内存监控

监控指标:

  • 总内存
  • 已用内存
  • 剩余内存
  • 使用率
  • JVM堆内存
  • JVM非堆内存

磁盘监控

监控指标:

  • 磁盘路径
  • 文件系统
  • 磁盘类型
  • 总容量
  • 已用空间
  • 可用空间
  • 使用率

JVM监控

监控指标:

  • JVM版本
  • JVM运行时间
  • 堆内存
  • 非堆内存
  • 线程数
  • 类加载数
  • GC信息

应用信息

监控指标:

  • 应用名称
  • 应用版本
  • 启动时间
  • 运行时长
  • 请求统计
  • 异常统计

常见问题

Q: 文件上传失败怎么办?

A: 检查以下几点:

  1. 文件大小是否超过限制
  2. 磁盘空间是否充足
  3. 存储路径是否有写权限
  4. OSS配置是否正确(使用OSS时)

Q: 代码生成的代码如何使用?

A:

  1. 解压生成的代码包
  2. 将后端代码复制到对应目录
  3. 将前端代码复制到对应目录
  4. 执行菜单SQL添加菜单
  5. 刷新页面查看效果

Q: 如何切换数据源?

A:

  • 在代码中使用 @DS("数据源编码") 注解
  • 方法级别注解优先于类级别注解
  • 不使用注解则使用默认数据源

Q: 定时任务不执行怎么办?

A:

  1. 检查任务状态是否为「运行」
  2. 检查Cron表达式是否正确
  3. 检查Bean名称和方法名是否正确
  4. 查看执行日志中的错误信息

Q: 如何清理API日志?

A:

  • 在API日志页面点击「日志清理」
  • 选择清理方式(按时间/按数量)
  • 确认清理
  • 清理前建议备份

技术说明

API 端点

功能方法路径说明
文件上传POST/infra/file/upload上传文件
文件下载GET/infra/file/download/下载文件
代码生成POST/infra/code/generate生成代码
数据源列表GET/infra/datasource/list查询数据源列表
API日志列表GET/infra/api-log/list分页查询API日志
任务列表GET/infra/job/list分页查询定时任务

数据源切换示例

java
@Service
public class UserServiceImpl implements UserService {

    @Override
    @DS("master")  // 使用主库
    public void insert(User user) {
        userMapper.insert(user);
    }

    @Override
    @DS("slave")  // 使用从库
    public List<User> selectList() {
        return userMapper.selectList(null);
    }
}

📖 相关文档: