首页 文章 精选 留言 我的

xtools-app一款基于JDK25,SpringBoot4,SpringCloud的最新微服务脚手架

xtools-app 设计文档

开源地址: https://gitee.com/jun-xtools/xtools-app.git

一、功能和用途

1.1 项目概述

项目属性
项目名称 xtools-app
项目版本 1.0.0
父POM org.xujun:xtools-parent-cloud:5.0.0
JDK版本 25
项目描述 低调大师工具箱,基础应用模块,适配JDK25
组织 org.xujun (https://www.xujun.org)

xtools-app 是一套基于 Spring Boot 构建的企业级基础应用平台,提供系统管理、代码生成、监控管理等核心功能。项目采用多模块架构,支持独立部署(Standalone)和微服务部署两种模式。

1.2 技术特点

  • 采用最新的 JDK 25 版本,充分利用虚拟线程(Virtual Thread)、ScopedValue 等新特性
  • 基于 Spring Boot 4.0.6 构建,支持自动配置和快速开发
  • 集成 Spring Cloud Alibaba 2025.1.0.0 微服务框架
  • 使用 MyBatis-Plus 3.5.16 简化数据访问层开发
  • 集成 Elasticsearch 实现日志存储和检索(Spring Data BOM 2025.1.5)
  • 支持 Nacos 3.1.1 服务注册与发现、Sentinel 1.8.9 流量控制和熔断降级
  • 使用 Redis 实现分布式缓存和会话管理
  • 使用 RabbitMQ(Spring AMQP 4.0.3)实现异步消息处理
  • 支持 Knife4j 4.5.0 自动生成 API 文档
  • 使用 SM2/SM3 国密算法保障密码安全

1.3 核心功能

认证安全模块

认证模块
Token管理、白名单

风控模块
IP风险、URI风险

文件模块
文件操作、S3存储

参数模块
系统参数工具

定时任务模块
动态定时任务

标签模块
Swagger标签拦截

监控模块

监控客户端
Boot Admin Client

健康检查
Health Controller

监控服务端
Boot Admin Server

公共模块

缓存模块
Redis缓存、AOP日志

远程调用
HTTP服务调用、拦截器

JAR管理
JAR加载、初始化

日志总线
事件发布、异步存储

日志过滤
HTTP请求拦截、请求响应日志

消息队列
RabbitMQ、错误重试

任务调度
异步任务总线、任务记录

限流降级
Sentinel、BlockException处理

通用配置
公共配置项

代码生成模块

数据源管理
多数据源、连接测试

表结构管理
数据库同步、字段配置

代码生成
Velocity模板、前后端代码

代码预览下载
在线预览、ZIP下载

系统管理模块

用户管理
CRUD 、角色分配、状态管理

角色管理
权限分配、菜单分配

菜单管理
树形结构、动态加载、接口权限

部门管理
树形结构、人员管理

字典管理
类型管理、项管理、Excel导入导出

日志管理
操作日志、系统日志、Elasticsearch存储

任务管理
定时任务配置、任务监控、异步任务

系统监控
Redis监控、MySQL监控、ES监控

JAR管理
JAR加载、依赖缓存

文件管理
上传下载、S3存储、生命周期管理

公告管理
公告发布、用户公告

参数管理
系统参数配置、参数缓存

风控管理
IP黑名单、URI黑名单、本地缓存

地址管理
IP归属地查询、地址缓存

更新历史
数据变更记录

1.4 功能关系图

用户

登录认证

菜单访问

数据操作

SM2加密传输

认证授权

Token管理
Redis存储

权限验证
RBAC模型

角色

操作日志

消息队列

Elasticsearch

Redis缓存

代码生成

数据库

系统监控

Redis

MySQL

1.5 功能层次图

xtools-app
基础应用平台

系统管理

用户管理

增删改查

角色分配

密码管理

状态管理

数据脱敏

角色管理

角色配置

菜单分配

菜单管理

树形结构

动态加载

接口权限配置

部门管理

树形结构

字典管理

类型管理

项管理

Excel导入导出

日志管理

操作日志

系统日志

ES存储检索

任务管理

定时任务配置

任务执行监控

系统监控

Redis监控

MySQL监控

ES监控

文件管理

上传下载

S3存储

生命周期管理

参数管理

系统参数配置

风控管理

IP黑名单

URI黑名单

代码生成

数据源管理

多数据源配置

连接测试

表结构管理

数据库同步

字段配置

代码生成

Velocity模板

前后端代码

代码预览下载

在线预览

ZIP打包下载

公共能力

缓存管理

Redis缓存

缓存枚举

AOP日志记录

远程调用

HTTP服务调用

日志处理

HTTP请求日志

日志总线

MQ异步存储

消息队列

RabbitMQ

错误重试机制

任务调度

异步任务总线

动态定时任务

限流降级

Sentinel集成

二、项目结构设计

2.1 整体架构

聚合

聚合

聚合

聚合

xtools-app
父模块 v1.0.0

xtools-app-common
公共模块

xtools-app-sys
系统管理模块

xtools-app-gen
代码生成模块

xtools-app-monitor
监控模块

xtools-app-standalone
独立部署模块

common-cache
缓存模块

common-call
远程调用模块

common-config
通用配置

common-jar
JAR管理模块

common-job
任务模块

common-log
日志模块

common-mq
消息队列模块

common-sentinel
限流降级模块

common-task
异步任务模块

common-log-bus
日志总线

common-log-filter
日志过滤器

sys-api
系统API接口

sys-auth
认证授权

sys-biz
系统业务逻辑

sys-boot
系统启动模块

sys-call
系统远程调用

sys-file
文件管理

sys-file-web
文件Web接口

sys-log-bus-elasticsearch
ES日志存储

sys-param
参数管理

sys-risk
风控管理

sys-scheduled
定时任务

sys-tag
标签管理

gen-biz
代码生成业务

gen-boot
代码生成启动

monitor-boot
监控服务端

monitor-client
监控客户端

monitor-health
健康检查

2.2 分层架构

基础设施层

Mapper层

Service层

Controller层

过滤器层

异步

异步

存储

HttpLogFilter
请求响应日志
Order: 200

AuthFilter
认证授权
Order: 201

接收HTTP请求

参数验证 @Valid

调用Service层

返回统一响应 Result

实现业务逻辑

事务控制

调用Mapper层

对象转换 Convert

缓存操作 Cache

数据库访问

SQL执行

结果映射

Redis缓存

RabbitMQ消息

Elasticsearch

S3文件存储

MySQL数据库

2.3 模块职责

层级 职责 说明
过滤器层 请求拦截 HttpLogFilter 记录请求响应日志,AuthFilter 验证认证授权
Controller层 接口暴露 接收请求、参数验证、调用Service、返回统一Result响应
Service层 业务逻辑 事务控制、业务验证、调用Mapper、对象转换
Service Base层 基础CRUD 封装通用增删改查,减少重复代码
Mapper层 数据访问 MyBatis-Plus Mapper,数据库操作
Entity层 实体对象 数据库表映射实体
DTO层 数据传输 请求DTO(req)、响应DTO(resp)、Excel DTO
Convert层 对象转换 MapStruct 转换器,Entity <-> DTO
Config层 配置管理 模块配置、白名单、初始化
MQ层 消息处理 RabbitMQ 消息消费者
Job层 定时任务 BaseJob 定时任务实现
Utils层 工具方法 密码加密、数据源工具等
AOP层 切面增强 Redis操作日志、存储操作日志

2.4 包结构设计

复制代码
xtools.app.{module}
├── controller          # 控制器
├── service             # 服务接口
│   ├── base            # 基础CRUD服务接口
│   └── impl            # 服务实现
├── mapper              # MyBatis Mapper
├── model
│   ├── entity          # 实体类
│   ├── dto
│   │   ├── req         # 请求DTO(AddReq, UpdateReq, PageReq)
│   │   ├── resp        # 响应DTO
│   │   └── excel       # Excel导入导出DTO
│   └── vo              # 视图对象
├── convert             # MapStruct 对象转换器
├── config              # 模块配置
├── utils               # 工具类
├── mq                  # RabbitMQ 消息消费者
├── job                 # 定时任务
├── enums               # 枚举类
├── init                # 初始化(ApplicationRunner)
└── aop                 # AOP切面

2.5 系统边界视图

数据层

公共模块层

业务模块层

应用层

用户层

Web前端

xtools-app-standalone
独立部署应用

SysApplication
系统管理应用

GenApplication
代码生成应用

MonitorApplication
监控服务应用

sys-biz
系统业务

gen-biz
代码生成业务

sys-scheduled
动态定时任务

sys-log-bus-elasticsearch
ES日志存储

common-cache

common-call

common-jar

common-log-bus

common-log-filter

common-mq

common-sentinel

common-task

common-config

MySQL

Redis

Elasticsearch

RabbitMQ

S3存储

三、项目功能设计

3.1 认证授权设计

3.1.1 登录认证流程

验证失败

验证成功

用户不存在

用户存在

已锁定

已过期

正常

密码错误

密码正确

用户请求登录

前端获取验证码
GET /sys/login/captcha

前端获取SM2公钥
POST /sys/login/public-key

用户输入账号密码
使用SM2公钥加密

提交登录请求
POST /sys/login/passwd

验证验证码
Redis: UID_CAPTCHA

返回验证码错误

SM2解密密码
验证公钥匹配

查询用户信息

返回用户不存在

检查账号状态
锁定/过期

返回账号已锁定

返回账号已过期

验证密码
SM3加密比对

记录错误次数
Redis计数器

错误次数超限?

锁定账号
Redis: LOCK_SYS_USER

返回密码错误

清除错误计数

生成Token
UUID accessToken + refreshToken

缓存登录用户
Redis: AUTH_SYS_USER

返回Token信息

3.1.2 Token管理机制

Token 基于 UUID 生成,存储在 Redis 中,包含四种键类型:

Redis Key 说明 TTL
accessToken:{uuid} Token -> 登录用户映射 60分钟
refreshToken:{uuid} 刷新Token -> AccessToken映射 60分钟
user:{userId} 用户 -> Token映射(单设备登录) 60分钟
mask:{userId} 数据脱敏忽略标记 按配置

Token 刷新流程:客户端使用 refreshToken 请求 GET /sys/login/refresh/{refreshToken},后端查找对应的 accessToken,获取登录用户信息,生成新的 Token 对。

3.1.3 授权设计(RBAC模型)

多对多

多对多

多对多

多对多

包含

拥有

匹配

key: 模块:方法
value: 角色ID列表

用户 SysUser

用户角色关联
SysUserRole

角色 SysRole

角色菜单关联
SysRoleMenu

菜单 SysMenu

接口权限
SysInterfacePerm

角色ID列表
roleIds

权限缓存
Redis Hash

权限验证

3.1.4 权限验证流程

无效

有效

使用AntPathMatcher

用户发起接口请求

AuthFilter拦截请求

是否在认证白名单?

跳过认证

是否在登录白名单?

仅验证登录状态

验证AccessToken

Token有效?

返回未授权

获取LoginUserDto

PremUtils.checkInterfacePerm

从URI提取模块名
如 /sys/user -> sys/user

查询Redis权限缓存
key: sys/user:GET

匹配权限规则?

获取允许的角色ID列表

用户角色ID
在允许列表中?

放行请求

返回权限不足

存储用户上下文到CommonHolder

3.1.5 权限缓存初始化

系统启动时 InitSys(ApplicationRunner, Order: 200)执行权限缓存加载:

  1. 查询所有 SysInterfacePerm 记录
  2. 模块名:HTTP方法 分组
  3. 以 JSON 字符串存入 Redis Hash(key: AUTH_SYS_URI
  4. 使用 ScopedValue 传递日志追踪上下文

3.2 日志管理设计

3.2.1 日志类型

日志类型 说明 存储方式
HTTP请求日志 请求URI、方法、参数、IP、Header RabbitMQ异步
HTTP响应日志 响应状态码、Header、Body、耗时 RabbitMQ异步
操作日志 用户操作记录、权限验证记录 MySQL + RabbitMQ
系统日志 各类系统事件 MySQL / Elasticsearch
Redis操作日志 缓存操作记录 LogBus异步
存储操作日志 文件存储操作记录 LogBus异步
任务日志 定时任务执行记录 MySQL

3.2.2 日志处理流程

存在

不存在

HTTP请求

HttpLogFilter
Order: 200

包装Request/Response
ContentCachingWrapper

AuthFilter
Order: 201

业务处理

LogBus记录操作日志
OPT_LOG

本地LogBusService?

直接写入数据库

发布到MQ
RabbitMqEnums.SYS_LOG

SysLogMq消费者
并发5-10

LogBusService.saveLog

异步记录HTTP日志
VirtualThread

LogBusService存在?

3.2.3 Elasticsearch日志存储

当配置 sys.log.type=elasticsearch 时,EsSysLogServiceImpl(标记 @Primary)替代默认的 SysLogServiceImpl

  • 使用 Spring Data Elasticsearch Repository 存储日志
  • 支持分页查询:match_phrase(精确匹配)、wildcard(模糊匹配)、时间范围过滤
  • 支持链路追踪查询:按 logIndexlogTime 排序,最多查询 10,000 条
  • 支持按时间范围批量删除:_delete_by_query

3.3 代码生成设计

3.3.1 代码生成流程

在线预览

打包下载

直接生成

配置数据源

同步数据库表结构
syncDb

JDBC连接外部数据库
DatabaseMetaData

读取所有表
getTables

保存到gen_table

读取表字段
getColumns + getPrimaryKeys

保存到gen_table_column

配置生成参数
模板选择 、包名 、模块名

生成方式

previewCode
Velocity渲染模板

downloadCode
ZIP打包

genCode
写入项目目录

返回代码内容
Map

生成ZIP文件
包含前后端代码

3.3.2 模板引擎配置

  • 使用 Apache Velocity 2.4.1 模板引擎
  • 模板从 classpath 加载,UTF-8 编码
  • 通过 GenProperties 配置后端/前端应用名、模块名、作者、版本等参数
  • 支持过滤字段(正则匹配字段注释)
  • 支持排除表(配置不生成的表名)

3.3.3 生成代码结构

复制代码
{backendAppName}/{moduleName}/{moduleName}-biz/src/main/java/{packageName}/{subPackageName}/
├── controller/          # Controller类
├── service/             # Service接口
│   ├── base/            # 基础CRUD
│   └── impl/            # Service实现
├── mapper/              # Mapper接口
├── model/
│   ├── entity/          # 实体类
│   └── dto/
│       ├── req/         # 请求DTO
│       └── resp/        # 响应DTO
├── convert/             # MapStruct转换器
└── utils/               # 工具类

{frontendAppName}/src/{subPackageName}/{subModuleName}/
├── index.ts             # API接口
└── {tableName}/index.vue   # Vue页面

sql/                      # SQL脚本

3.4 任务调度设计

3.4.1 任务类型

任务类型 说明 实现类
DEL_SYS_LOG 清理过期系统日志 SysLogJob
DEL_SYS_FILE 清理过期文件 SysFileJob
DEL_DISABLE_SYS_USER 清理禁用用户 SysUserJob
自定义任务 动态定时任务 SysScheduledService

3.4.2 定时任务实现

成功

失败

任务执行

BaseJob.runJob

TaskBus.init
设置任务状态ING

执行任务逻辑

执行成功?

TaskBus.save
状态: SUCCESS

TaskBus.error
状态: ERROR

TaskBus -> RabbitMQ
队列: sys.task

SysTaskMq消费者
并发5-10

SysTaskService.save
写入任务记录

3.4.3 动态定时任务

SysScheduledService 提供动态定时任务管理:

  • init():启动时从数据库加载所有启用的定时任务
  • start():启动指定任务(创建 ScheduledTask 注册到 Spring TaskScheduler)
  • stop():停止指定任务(取消 ScheduledTask)
  • restart():重启指定任务
  • run():立即执行一次任务

任务初始化通过 InitSysScheduled(ApplicationRunner, Order: 200)在系统启动时自动完成。

3.5 缓存设计

3.5.1 缓存策略

项目使用 Redis 作为主要缓存介质,所有缓存键和 TTL 通过 AppCache 枚举集中管理:

缓存Key TTL 用途
UID_SM2 5分钟 SM2密钥对(每次登录生成)
UID_CAPTCHA 1分钟 验证码
AUTH_SYS_USER 60分钟 登录用户Token
AUTH_SYS_URI 永久 URI权限缓存(启动加载)
AUTH_CLOUD_TOKEN 1分钟 微服务调用Token(一次性)
LOCK_JOB 5分钟 Job分布式锁
LOCK_SYS_USER 按配置 用户锁定(密码错误超限)
RISK_IP 永久 IP风控黑名单
RISK_URI 永久 URI风控黑名单
SYS_CACHE_PARAM 永久 系统参数缓存
SYS_CACHE_AP_RULE 永久 密码规则缓存
SYS_CACHE_JAR 永久 JAR依赖缓存
SYS_CACHE_ADDR 60分钟 IP归属地缓存
COUNT_SYS_USER_PASSWD_ERR 永久 密码错误计数

3.5.2 Redis操作日志AOP

RedisServiceAop 切面环绕所有 RedisService 方法:

  • 记录方法名、参数、返回值、执行时间
  • 通过 LogBus 发布 REDIS 类型日志
  • 仅在存在 LogTrack 上下文时记录

3.5.3 风控本地缓存

URI风控使用两级缓存架构:

  • 一级缓存:Caffeine 本地缓存(20秒过期)
  • 二级缓存:Redis String 缓存
  • 查询顺序:Caffeine -> Redis

3.6 风控管理设计

命中

未命中

请求到达

IpRisk检查
Redis Hash: RISK_IP

IP在黑名单?

拒绝请求

UriRisk检查

Caffeine缓存?

获取URI黑名单列表

查询Redis缓存
RISK_URI

写入Caffeine
20秒过期

URI包含黑名单字符串?

放行请求

  • IP风控:启动时从数据库加载 IP 黑名单到 Redis Hash,支持动态添加/移除
  • URI风控:使用 Caffeine + Redis 两级缓存,启动时从数据库加载 URI 黑名单字符串
  • 风控数据来源SysRisk 实体,按 SysRiskType(IP/URI)分类存储

3.7 文件管理设计

非法

合法

不支持

支持

超限

合法

已删除

TEMP且过期

正常

文件上传请求

SysFileOptServiceImpl.upload

验证文件名

拒绝上传

验证扩展名
bizType.extArr

验证文件大小
bizType.maxSize

计算MD5和SM3哈希
5GB以下文件

生成UUID存储路径

StorageService存储

记录文件元数据
类型: TEMP

设置过期时间
bizType.expiry

文件下载请求

SysFileOptServiceImpl.download

检查文件状态

返回文件不存在

自动删除文件

StorageService下载

文件生命周期状态:TEMP(临时) -> OK(确认)或 DELETE(删除/过期)

3.8 系统监控设计

SysMonitorController/sys/monitor)提供以下监控端点:

端点 方法 说明
/sys/monitor/redis GET Redis 监控(内存、连接数、命中率等)
/sys/monitor/mysql/{type} GET MySQL 监控(进程列表、InnoDB状态等)
/sys/monitor/elasticsearch/{type} GET Elasticsearch 监控(集群健康、索引统计等)

使用枚举类型选择不同的监控指标,委托给 boot 框架中的 RedisMonitorMySqlMonitorElasticsearchMonitor 实现。

3.9 消息队列设计

成功

失败

成功

失败

消息生产者

MqBus.push
发送消息

RabbitMQ Broker

消费者组1: SysLogMq
队列: sys.log
并发: 5-10

消费者组2: SysTaskMq
队列: sys.task
并发: 5-10

处理成功?

LogBusService.saveLog
存储日志

MqErrorHandle

处理成功?

SysTaskService.save
存储任务记录

SM3哈希消息
Redis错误计数+1

错误次数 >= 3?

放弃消息
删除计数器

等待1秒
抛出异常触发重投递

队列定义

队列 用途 消息类型 记录日志
sys.log 异步日志存储 LogBody
sys.task 异步任务记录 TaskInfo

错误处理:使用 SM3 哈希消息内容作为去重键,通过 Redis 计数器跟踪重试次数,最多重试 3 次。

四、编码规范设计

4.1 命名规范

类命名

类型 命名规范 示例
实体类 Sys + 功能名 SysUserSysRoleSysMenu
请求DTO Sys + 功能名 + AddReq/UpdateReq/PageReq SysUserAddReq
响应DTO Sys + 功能名 + Resp SysUserResp
Excel DTO Sys + 功能名 + Excel SysUserExcel
Service接口 Sys + 功能名 + Service SysUserService
Service实现 Sys + 功能名 + ServiceImpl SysUserServiceImpl
Service Base Sys + 功能名 + BaseService SysUserBaseService
Controller Sys + 功能名 + Controller SysUserController
Mapper Sys + 功能名 + Mapper SysUserMapper
Convert Sys + 功能名 + Convert SysUserConvert
枚举 功能名 + Enum SysRiskEnum
配置类 功能名 + Config SysConfig
初始化类 Init + 模块名 InitSys
消息消费者 Sys + 功能名 + Mq SysLogMq
定时任务 Sys + 功能名 + Job SysLogJob
工具类 功能名 + Utils PasswdUtils

方法命名

操作 命名规范 示例
查询单个 get + 功能名 getSysUser
分页查询 page + 功能名 pageSysUser
列表查询 list + 功能名 listSysRole
新增 add + 功能名 addSysUser
修改 update + 功能名 updateSysUser
删除 delete + 功能名 + ByIds deleteSysUserByIds

4.2 注释规范

类注释格式

java 复制代码
/**
 * <p>Title : 类名称</p>
 * <p>Description : 类描述</p>
 * <p>Company : org.xujun</p>
 *
 * @author : 作者名
 * @version : 版本号
 * @date : 日期
 */

方法注释格式

java 复制代码
/**
 * 方法描述
 *
 * @param param 参数说明
 * @return 返回值说明
 */

4.3 代码风格

  • Lombok:使用 @Data@Builder@Slf4j@AllArgsConstructor@NoArgsConstructor 等注解简化 POJO 代码
  • MapStruct:使用 @Mapper 注解定义对象转换器,编译期生成转换代码
  • MyBatis-Plus:使用 BaseMapper 简化 CRUD 操作,IService 封装 Service 层通用方法
  • 构造器注入:使用 @RequiredArgsConstructor(Lombok)替代 @Autowired 字段注入
  • 统一返回格式:所有 API 响应使用 Result<T> 统一封装
  • 统一异常处理BizError(业务错误)、BizWarning(业务警告)、UnauthorizedError(未授权)、BizPublicKeyError(密钥过期)
  • API文档:使用 @Tag@Operation@Schema 注解生成 Knife4j API 文档

4.4 设计规范

  • 分层原则:Controller -> Service -> Mapper,每层职责单一明确
  • 单一职责:每个 Service 只负责一个业务领域
  • 开闭原则:通过 @Primary 注解支持 Service 实现的运行时替换(如 EsSysLogServiceImpl 替换默认 SysLogServiceImpl
  • 基础抽象BaseService + BaseServiceImpl 封装通用 CRUD,业务 Service 只关注差异化逻辑
  • 过滤器链:使用 @Order 控制过滤器执行顺序(HttpLogFilter: 200 -> AuthFilter: 201)
  • 初始化模式ApplicationRunner + @Order 控制启动顺序

4.5 安全规范

安全措施 实现方式 说明
密码传输加密 SM2 非对称加密 服务端生成密钥对,客户端用公钥加密,服务端用私钥解密
密码存储加密 SM3 国密哈希 不可逆哈希存储,登录时对比哈希值
密钥管理 Redis 临时存储 SM2密钥对存储5分钟,防止重放攻击
SQL安全 MyBatis-Plus 参数化查询 防止SQL注入
数据验证 @Valid 注解 请求参数校验
认证授权 Token + RBAC UUID Token + Redis + 接口权限
数据脱敏 MaskIgnoreUtils 敏感字段按会话级别脱敏控制
账号锁定 Redis计数器 密码错误超限自动锁定
微服务认证 一次性Token Cloud Token 从 Redis Hash 删除后失效

五、项目依赖设计

5.1 核心框架依赖

依赖 版本 用途
Spring Boot 4.0.6 应用框架
Spring Framework 7.0.7 核心框架
Spring Security 7.0.5 安全框架
Spring Data BOM 2025.1.5 数据访问版本管理
Spring AMQP 4.0.3 RabbitMQ集成
Jackson BOM 2.21.2 JSON序列化(主)
Jackson BOM 3.1.2 JSON序列化(新)
MyBatis Spring Boot Starter 4.0.1 MyBatis集成
MyBatis-Plus 3.5.16 ORM增强工具

5.2 工具库依赖

依赖 版本 用途
Lombok 1.18.46 代码简化
MapStruct 1.6.3 对象映射
FastJSON2 2.0.60 JSON处理
Velocity 2.4.1 模板引擎(代码生成)
Commons IO 2.22.0 IO工具
Commons Lang3 3.20.0 通用工具
Commons Text 1.15.0 文本处理
Caffeine 3.2.3 本地缓存(风控)

5.3 安全相关依赖

依赖 版本 用途
BouncyCastle 1.84 SM2/SM3国密算法
java-jwt 4.5.1 JWT Token
Easy Captcha 1.6.2 验证码生成

5.4 文档相关依赖

依赖 版本 用途
Knife4j 4.5.0 API文档增强
Swagger Annotations 2.2.48 OpenAPI注解
SpringDoc OpenAPI 3.0.3 OpenAPI文档生成

5.5 消息队列依赖

依赖 版本 用途
Spring AMQP 4.0.3 RabbitMQ集成(由Spring Boot 4.0.6管理)

5.6 缓存依赖

依赖 版本 用途
Spring Data Redis 由Spring Boot管理 Redis集成

5.7 系统监控依赖

依赖 版本 用途
OSHI 6.12.0 系统信息采集
Spring Boot Admin 4.0.4 应用监控

5.8 数据库依赖

依赖 版本 用途
Druid 1.2.28 数据库连接池

5.9 文件处理依赖

依赖 版本 用途
Fesod Sheet 2.0.1-incubating Excel处理
S3 SDK 2.42.41 S3对象存储

5.10 其他工具依赖

依赖 版本 用途
ip2region 3.3.7 IP归属地查询
UserAgentUtils 1.21 浏览器标识解析
pinyin4j 2.5.1 拼音转换
thumbnailator 0.4.21 图片压缩
mmseg4j-core 1.10.0 中文分词
ZXing 3.5.4 二维码/条形码
PDFBox 3.0.7 PDF处理
Jsoup 1.22.2 HTML解析
JUnit Jupiter 6.0.3 单元测试
Byte Buddy 1.17.8 字节码操作

5.11 微服务相关依赖

依赖 版本 用途
Spring Cloud 2025.1.1 微服务框架
Spring Cloud Alibaba 2025.1.0.0 微服务组件
Nacos Client 3.1.1 服务注册与配置中心
Sentinel 1.8.9 流量控制与熔断降级
Seata 2.5.0 分布式事务
RocketMQ 5.3.1 消息队列(可选)
XXL-Job 3.4.0 分布式任务调度(可选)

5.12 xtools内部框架依赖

所有 xtools 内部模块版本均为 5.0.0:

模块 用途
xtools-core 核心工具库
xtools-web Web工具库
xtools-extend 扩展工具库
xtools-api API接口定义
xtools-boot-api Boot API模块
xtools-boot-core Boot核心模块
xtools-boot-cache-redis Redis缓存模块
xtools-boot-db-mybatis MyBatis数据库模块
xtools-boot-db-mybatis-plus MyBatis-Plus模块
xtools-boot-elasticsearch Elasticsearch模块
xtools-boot-ip IP地址模块
xtools-boot-knife4j Knife4j文档模块
xtools-boot-log 日志模块
xtools-boot-mask 数据脱敏模块
xtools-boot-mq-base MQ基础模块
xtools-boot-mq-rabbit RabbitMQ模块
xtools-boot-storage-base 存储基础模块
xtools-boot-storage-s3 S3存储模块
xtools-boot-task 任务模块
xtools-boot-thread 线程模块
xtools-boot-web-base Web基础模块
xtools-boot-web-filter Web过滤器模块
xtools-cloud-alibaba-nacos Nacos集成
xtools-cloud-alibaba-sentinel Sentinel集成
xtools-cloud-call 微服务调用

六、技术选型说明

6.1 JDK 25

  • 选择原因:最新LTS版本,提供长期支持和性能优化
  • 主要新特性
    • 虚拟线程(Virtual Threads):轻量级线程,大幅提升并发能力,项目中用于异步日志记录(VirtualThreadTaskUtils.simple()
    • Scoped Value:虚拟线程间的上下文传递,项目中用于 LogTrackHolder 上下文传播
    • Structured Concurrency:结构化并发编程
    • 改进的 ZGC/Shenandoah 垃圾回收器
    • Pattern Matching 增强
    • Record Classes 增强

6.2 Spring Boot 4.0.6

  • Spring Framework 版本:7.0.7
  • Spring Security 版本:7.0.5
  • 主要特性
    • 支持 Jakarta EE 11
    • 原生支持虚拟线程
    • 改进的可观测性(Observability)
    • 增强 GraalVM Native Image 支持
    • 改进的自动配置机制

6.3 MyBatis-Plus 3.5.16

  • 支持的 MyBatis 版本:4.0.1
  • 主要特性
    • 简化 CRUD 操作(BaseMapperIService
    • 内置分页插件
    • 条件构造器(QueryWrapperLambdaQueryWrapper
    • 自动填充、逻辑删除、乐观锁
    • 代码生成器
    • SQL 性能分析

6.4 Elasticsearch

  • Spring Data BOM 版本:2025.1.5
  • 主要特性
    • 全文搜索和倒排索引
    • 分布式架构,高可用
    • 近实时搜索
    • 项目中用于系统日志的存储和检索,支持分页查询、链路追踪和批量删除

6.5 Redis

  • 版本说明:由 Spring Boot 4.0.6 管理
  • 主要特性
    • 高性能键值缓存
    • 支持多种数据结构(String、Hash、List、Set、ZSet)
    • 项目中用于:Token存储、权限缓存、风控数据、分布式锁、参数缓存等
    • 通过 RedisService 封装操作,AOP切面记录操作日志

6.6 RabbitMQ

  • 版本说明:Spring AMQP 4.0.3(由Spring Boot管理)
  • 主要特性
    • 可靠消息传递(确认机制、持久化)
    • 灵活路由(Direct/Fanout/Topic交换机)
    • 消息确认和重试机制
    • 项目中用于:异步日志存储、异步任务记录
    • 自定义错误处理:SM3去重 + Redis计数器 + 最多3次重试

6.7 Nacos 3.1.1

  • 选择原因:Spring Cloud Alibaba 生态核心组件
  • 主要特性
    • 服务注册与发现
    • 动态配置管理
    • 健康检查
    • 支持微服务部署模式

6.8 其他重要依赖版本

依赖 版本 用途 选择原因
Sentinel 1.8.9 流量控制与熔断降级 阿里开源,轻量级高可用
FastJSON2 2.0.60 JSON序列化 高性能,国产开源
Lombok 1.18.46 代码简化 编译期注解处理,零运行时开销
MapStruct 1.6.3 对象映射 编译期生成,高性能
Velocity 2.4.1 模板引擎 代码生成模板渲染
Knife4j 4.5.0 API文档增强 增强Swagger UI,国人友好
BouncyCastle 1.84 加密库 SM2/SM3国密算法支持
OSHI 6.12.0 系统监控 跨平台系统信息采集
Easy Captcha 1.6.2 验证码生成 支持算术验证码、GIF动画验证码
Fesod Sheet 2.0.1-incubating Excel处理 Apache POI孵化项目
Druid 1.2.28 数据库连接池 阿里开源,监控功能完善
Caffeine 3.2.3 本地缓存 高性能,支持过期策略
S3 SDK 2.42.41 对象存储 AWS S3协议兼容
Jackson 2.21.2 JSON处理 Spring Boot默认JSON库

文档版本:v1.0
编写日期:2026-06-09
项目版本:1.0.0
父POM版本:xtools-parent-cloud:5.0.0
JDK版本:25
维护团队xujun.org

优秀的个人博客,低调大师

微信关注我们

本文章为原创内容,如需转载请注明来源!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

xtools-boot一款基于JDK25,SpringBoot4的通用Spring工具库

xtools-boot一款基于JDK25,SpringBoot4的通用Spring工具库

xtools-boot 项目设计文档 开源地址: https://gitee.com/jun-xtools/xtools-boot.git 一、功能和用途 1.1 项目概述 项目信息 描述 项目名称 xtools-boot 项目版本 5.0.0 父POM xtools-parent-boot:5.0.0 顶级父POM xtools-parent:5.0.0 Spring Boot 4.0.6 JDK版本 25 项目定位 SpringBoot工具模块框架,为业务应用提供开箱即用的基础能力 维护团队 org.xujun 1.2 技术特点 采用最新的 JDK 25 版本,充分利用虚拟线程(Virtu...

xtools-app一款基于JDK25,SpringBoot4,SpringCloud的最新微服务脚手架

xtools-app一款基于JDK25,SpringBoot4,SpringCloud的最新微服务脚手架

xtools-app 设计文档 开源地址: https://gitee.com/jun-xtools/xtools-app.git 一、功能和用途 1.1 项目概述 项目属性 值 项目名称 xtools-app 项目版本 1.0.0 父POM org.xujun:xtools-parent-cloud:5.0.0 JDK版本 25 项目描述 低调大师工具箱,基础应用模块,适配JDK25 组织 org.xujun (https://www.xujun.org) xtools-app 是一套基于 Spring Boot 构建的企业级基础应用平台,提供系统管理、代码生成、监控管理等核心功能。项目采用...

相关文章

发表评论

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册