基础设施 (Infra) 模块操作手册
模块概述
基础设施模块(Infrastructure Module)提供系统运行所需的基础服务,包括文件管理、代码生成、数据源管理、API日志、定时任务、参数配置等功能。本模块为其他业务模块提供底层支撑。
功能导航
快速开始
访问地址
- 前端地址: http://localhost:3000
- 模块路由: /infra
- API 地址: http://localhost:8080/infra
- API 文档: http://localhost:8080/infra/doc.html
模块依赖
Infra 模块依赖以下服务:
- System 模块(必选)- 提供用户、权限管理
启动顺序: System → Infra
文件管理
功能说明
文件管理提供统一的文件存储服务,支持本地存储、OSS存储、MINIO存储等多种存储方式,支持文件的分类管理、权限控制。
存储方式
| 存储方式 | 说明 | 适用场景 |
|---|---|---|
| 本地存储 | 存储在服务器本地磁盘 | 开发环境、小规模部署 |
| 阿里云OSS | 存储在阿里云对象存储 | 生产环境、大规模部署 |
| MINIO | 开源对象存储 | 私有化部署 |
| 腾讯云COS | 腾讯云对象存储 | 腾讯云环境 |
| 七牛云 | 七牛云存储 | 对象存储服务 |
操作步骤
1. 文件上传
路径: 基础设施 → 文件管理 → 文件上传
操作说明:
点击「上传文件」按钮
选择存储位置:
- 存储方式: 选择存储方式(本地/OSS/MINIO等)
- 文件分类: 选择或创建文件分类
- 存储路径: 自动生成或手动指定
选择文件:
- 支持单文件上传
- 支持多文件上传
- 支持拖拽上传
- 文件大小限制:默认100MB(可配置)
填写文件信息(可选):
- 文件名称: 显示名称(默认使用原文件名)
- 文件描述: 文件说明
- 文件标签: 便于检索
点击「确定」开始上传
注意事项:
- 上传完成后会生成唯一的文件标识
- 同名文件会自动重命名
- 上传文件会记录到文件管理日志
2. 文件下载
路径: 基础设施 → 文件管理 → 文件列表
操作说明:
- 在文件列表中找到要下载的文件
- 点击「下载」按钮
- 文件下载到本地
注意事项:
- 下载权限受文件权限控制
- 支持断点续传
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. 文件分类管理
路径: 基础设施 → 文件管理 → 分类管理
操作说明:
- 点击「新增分类」
- 填写分类信息:
- 分类名称: 分类名称
- 父级分类: 选择父级分类
- 排序: 排序号
- 权限: 可见范围(全部/指定部门/指定用户)
- 点击「确定」保存
预置分类:
- 文档资料
- 图片资源
- 视频资源
- 软件安装包
- 其他文件
6. 分享文件
路径: 基础设施 → 文件管理 → 分享
操作说明:
- 在文件列表中点击「分享」
- 配置分享参数:
- 分享方式: 链接分享/密码分享
- 有效期: 1天/7天/30天/永久
- 访问次数: 无限制/限制次数
- 提取密码: 设置密码(可选)
- 点击「生成链接」
- 复制分享链接
注意事项:
- 分享链接包含文件标识
- 密码保护需要输入密码才能访问
- 过期后链接自动失效
代码生成
功能说明
代码生成功能可以根据数据库表结构快速生成单表(增删改查)代码,包括后端代码(Controller、Service、Mapper、Entity)和前端代码(Vue页面、API接口)。
操作步骤
1. 导入表
路径: 基础设施 → 代码生成 → 导入表
操作说明:
- 选择数据源(默认为当前数据源)
- 点击「导入表」按钮
- 系统自动读取数据库表
- 勾选要生成代码的表
- 点击「确定」导入
注意事项:
- 表会读取表结构、字段信息、注释
- 建议表有规范的注释
2. 配置生成信息
路径: 基础设施 → 代码生成 → 编辑
基本信息:
- 表名称: 数据库表名
- 表描述: 表的描述
- 模块名称: 生成的代码所属模块
- 业务名称: 业务名称
- 功能名称: 功能名称
- 作者: 开发者姓名
- 包路径: 代码的包路径
- 生成路径: 代码生成路径
字段信息:
| 字段设置 | 说明 |
|---|---|
| 字段名称 | 数据库字段名 |
| 字段描述 | 字段显示名称 |
| 字段类型 | Java类型 |
| Java属性 | Java属性名 |
| 是否主键 | 是/否 |
| 是否自增 | 是/否 |
| 必填 | 是/否 |
| 显示类型 | 表单展示方式(文本框、下拉框等) |
| 查询方式 | 查询方式(=、!=、>、<、LIKE、BETWEEN) |
| 是否查询 | 是否作为查询条件 |
| 是否必填 | 是否必填 |
| 显示类型 | 列表显示、表单显示、两者 |
显示类型说明:
- 文本框: 单行文本输入
- 文本域: 多行文本输入
- 下拉框: 固定选项选择
- 单选框: 单选按钮组
- 复选框: 复选框组
- 日期选择: 日期选择器
- 日期时间: 日期时间选择器
- 数字输入: 数字输入框
- 文件上传: 文件上传组件
- 富文本: 富文本编辑器
- 图片上传: 图片上传组件
3. 生成代码
路径: 基础设施 → 代码生成 → 生成代码
操作说明:
- 配置完成后,点击「生成代码」
- 选择生成内容:
- 后端代码: Controller、Service、ServiceImpl、Mapper、Mapper XML、Entity
- 前端代码: Vue页面、API接口
- 菜单SQL: 菜单插入SQL
- 点击「确定」生成代码
- 下载代码包(ZIP格式)
4. 使用生成的代码
后端代码:
- 解压代码包
- 将 Entity 复制到 entity 包
- 将 Mapper、Mapper XML 复制到 mapper 包
- 将 Service、ServiceImpl 复制到 service 包
- 将 Controller 复制到 controller 包
- 根据需要调整代码
前端代码:
- 解压代码包
- 将 Vue 文件复制到 views 目录
- 将 API 文件复制到 api 目录
- 在菜单管理中添加菜单
- 刷新页面查看效果
菜单SQL:
- 复制生成的菜单SQL
- 在数据库中执行
- 刷新菜单缓存
数据源管理
功能说明
数据源管理用于配置和管理多个数据源,支持动态切换数据源,实现读写分离、多租户数据隔离等功能。
操作步骤
1. 新增数据源
路径: 基础设施 → 数据源管理 → 新增
操作说明:
- 点击「新增」按钮
- 填写数据源信息:
- 数据源名称: 数据源名称
- 数据源编码: 数据源唯一标识
- 数据库类型: MySQL/Oracle/SQL Server/PostgreSQL
- 驱动类: JDBC驱动类
- 连接地址: 数据库连接地址
- 端口: 数据库端口
- 数据库名: 数据库名称
- 用户名: 数据库用户名
- 密码: 数据库密码
- 初始连接数: 初始连接数(默认5)
- 最大连接数: 最大连接数(默认100)
- 最大等待时间: 最大等待时间(毫秒)
- 点击「测试连接」验证配置
- 点击「确定」保存
注意事项:
- 数据源编码必须唯一
- 建议先测试连接再保存
- 密码会加密存储
2. 编辑/删除数据源
路径: 基础设施 → 数据源管理
操作说明:
- 点击「编辑」修改数据源配置
- 点击「删除」删除数据源(需要确认)
3. 使用数据源
在代码中切换数据源:
// 使用@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日志 → 日志清理
操作说明:
- 点击「日志清理」
- 选择清理方式:
- 按时间清理: 清理N天前的日志
- 按数量清理: 只保留最近N条记录
- 点击「确定」执行清理
注意事项:
- 清理前建议备份
- 清理操作不可恢复
定时任务
功能说明
定时任务基于 XXL-Job 实现,支持任务的动态配置、调度执行、监控告警等功能。
操作步骤
1. 新增定时任务
路径: 基础设施 → 定时任务 → 新增
操作说明:
- 点击「新增」按钮
- 填写任务信息:
- 任务名称: 任务的名称
- 任务分组: 任务分组(系统/业务)
- Spring Bean名称: Bean的名称
- 执行方法: 执行的方法名
- Cron表达式: 任务执行时间表达式
- 执行策略: 立即执行/秒级执行/分片广播
- 失败重试次数: 失败后重试次数
- 超时时间: 任务超时时间(秒)
- 任务说明: 任务说明
- 负责人: 任务负责人
- 报警邮件: 任务失败时接收报警的邮箱
- 执行状态: 暂停/运行
- 点击「确定」保存
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. 执行任务
路径: 基础设施 → 定时任务 → 执行一次
操作说明:
- 在任务列表中选择任务
- 点击「执行一次」
- 系统立即执行任务
- 可在执行日志中查看执行结果
3. 查看执行日志
路径: 基础设施 → 定时任务 → 执行日志
日志信息:
- 任务名称
- 执行时间
- 执行时长
- 执行结果(成功/失败)
- 执行日志
- 异常信息
4. 任务管理操作
暂停/恢复:
- 暂停:暂停任务调度
- 恢复:恢复任务调度
编辑:
- 修改任务配置
- 修改后需要保存
删除:
- 删除任务定义
- 需要确认操作
复制:
- 快速创建相似任务
系统配置
功能说明
系统配置用于管理系统的参数配置,支持动态修改,无需重启服务。
配置分类
| 配置类型 | 说明 | 示例 |
|---|---|---|
| 系统配置 | 系统级别的配置 | 系统名称、版本号 |
| 业务配置 | 业务相关的配置 | 审批规则、业务参数 |
| 接口配置 | 第三方接口配置 | 短信接口、邮件接口 |
| 存储配置 | 存储相关配置 | OSS配置、MINIO配置 |
操作步骤
1. 修改配置
路径: 基础设施 → 系统配置 → 配置列表
操作说明:
- 在配置列表中找到要修改的配置
- 点击「编辑」
- 修改配置值
- 点击「确定」保存
注意事项:
- 某些配置修改后需要清除缓存
- 涉及连接地址的配置修改后需要重启服务
- 修改前建议记录原值
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: 检查以下几点:
- 文件大小是否超过限制
- 磁盘空间是否充足
- 存储路径是否有写权限
- OSS配置是否正确(使用OSS时)
Q: 代码生成的代码如何使用?
A:
- 解压生成的代码包
- 将后端代码复制到对应目录
- 将前端代码复制到对应目录
- 执行菜单SQL添加菜单
- 刷新页面查看效果
Q: 如何切换数据源?
A:
- 在代码中使用
@DS("数据源编码")注解 - 方法级别注解优先于类级别注解
- 不使用注解则使用默认数据源
Q: 定时任务不执行怎么办?
A:
- 检查任务状态是否为「运行」
- 检查Cron表达式是否正确
- 检查Bean名称和方法名是否正确
- 查看执行日志中的错误信息
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 | 分页查询定时任务 |
数据源切换示例
@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);
}
}📖 相关文档:
