RTT Backend Foundation 是一套面向后端管理系统的通用基础框架。目标是把常见后端项目里反复编写的登录鉴权、用户权限、缓存、邮件验证码、数据库基础表、安全工具和代码生成能力整理成可复用组件,后续新项目可以直接接入,不需要从零重写。
本仓库基于 Apache-2.0 许可的开源后端项目能力做二次整理和组件化改造,保留必要的开源许可证与源码版权头,README 内容已改写为 RTT 自有说明。
- 登录鉴权:Spring Security、JWT、图形验证码、在线用户、单用户登录控制。
- 用户管理:用户、角色、菜单、部门、岗位、数据权限。
- 邮箱验证码:基于邮件服务和 Redis 的验证码发送、校验、过期和成功后删除。
- 缓存组件:封装 Redis 常见读写、TTL、Hash、List、Set、scan 查询。
- 安全工具:密码加密、RSA 解密、当前登录用户、匿名接口、统一异常处理。
- 系统增强:操作日志、接口限流、异步线程池、跨域、Swagger 配置。
- Boot 3 微服务基础层:
ApiError、traceId、HS512 JWT、WebFlux 错误写出、RBAC route policy、固定窗口限流。 - 数据库基础:后台系统基础表、Quartz 表、安全增强 SQL。
- 代码生成:后端 CRUD、DTO、Mapper、Repository、Service、Controller 和前端接口/页面模板。
| 模块 | 用途 |
|---|---|
backend-foundation-boot3-starter |
Boot 3.5 / JDK 21 独立 starter,提供 JWT、traceId、ApiError、WebFlux 错误响应、RBAC route policy、固定窗口限流 |
backend-foundation-starter |
Boot 2 / ELAdmin 旧 starter,提供统一接入注解、自动配置和邮箱验证码适配 |
eladmin-common |
公共注解、异常、Redis、工具类、基础 DTO/Entity/Mapper |
eladmin-system |
登录鉴权、用户权限、菜单、角色、部门、岗位、Quartz、系统接口 |
eladmin-logging |
操作日志、异常日志和日志注解 |
eladmin-tools |
邮件、对象存储、本地文件、支付等工具能力 |
eladmin-generator |
数据库表到 CRUD 代码的生成器 |
git clone https://github.com/llfzzz/RTT.git
cd RTT
MAVEN_OPTS="-Xmx512m" mvn -q -DskipTests -pl backend-foundation-boot3-starter install构建时建议保留 MAVEN_OPTS="-Xmx512m",避免依赖解析或注解处理时占用过多内存。
添加 Maven 依赖:
<dependency>
<groupId>com.woxiangchuan.foundation</groupId>
<artifactId>backend-foundation-boot3-starter</artifactId>
<version>0.2.0</version>
</dependency>Boot 3 starter 使用 AutoConfiguration.imports 自动接入,不需要 @EnableBackendFoundation。复制配置模板并按项目环境修改:
backend-foundation-boot3-starter/src/main/resources/application-foundation-boot3-template.yml
重点替换:
foundation.jwt.base64-secretfoundation.jwt.token-validityfoundation.routes.public-pathsfoundation.routes.rbacfoundation.rate-limit.*
旧 Boot 2 / ELAdmin 项目继续使用 backend-foundation-starter 和显式启用注解:
import com.woxiangchuan.foundation.autoconfigure.EnableBackendFoundation;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@EnableBackendFoundation
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}对应旧配置模板:
backend-foundation-starter/src/main/resources/application-foundation-template.yml
重点替换:
jwt.base64-secret- Redis 连接信息
- 数据库连接信息
- 邮箱 SMTP 配置
backend-foundation-boot3-starter 不依赖旧 ELAdmin 单体模块,适合 Spring Cloud Gateway、WebFlux 或 Boot 3 MVC 服务直接复用:
JwtTokenService tokens = ...
String jwt = tokens.createToken(new FoundationPrincipal("user-1", Set.of("RIDER", "DRIVER")));
JwtToken parsed = tokens.parse(jwt);默认配置保持微服务网关语义:
foundation:
jwt:
base64-secret: ${JWT_BASE64_SECRET:replace-with-64-byte-base64-hs512-secret}
token-validity: PT2H
routes:
public-paths: [/api/auth/**, /actuator/health, /actuator/info]
rbac:
- path-pattern: /api/admin/**
roles: [OPERATOR, ADMIN]
- path-pattern: /api/audits/**
roles: [OPERATOR, ADMIN]
rate-limit:
backend: memory
auth:
count: 20
period: PT60S
api:
count: 120
period: PT60S内存限流适合本地和单实例;配置 foundation.rate-limit.backend=redis 且存在 StringRedisTemplate 时,会切换到 Redis Lua 固定窗口计数。
backend-foundation-starter 提供了统一接口:
import com.woxiangchuan.foundation.verification.EmailVerificationCodeService;
emailVerificationCodeService.sendCode("user@example.com");
boolean ok = emailVerificationCodeService.verifyCode("user@example.com", "123456");默认配置:
foundation:
email-code:
key-prefix: "foundation:email-code:"
length: 6
ttl-seconds: 300
delete-on-success: true基础表结构:
sql/eladmin.sql
sql/quartz.sql
安全增强脚本:
sql/foundation/security-hardening.sql
安全增强脚本包含用户表关键字段约束、邮箱验证码审计表、用户角色/角色菜单/角色部门外键关系。生产环境执行前应先检查已有数据是否存在空值或孤儿关联。
邮件和任务通知模板:
eladmin-system/src/main/resources/template/email.ftl
eladmin-system/src/main/resources/template/taskAlarm.ftl
后端 CRUD 代码生成模板:
eladmin-generator/src/main/resources/template/admin/Controller.ftl
eladmin-generator/src/main/resources/template/admin/Service.ftl
eladmin-generator/src/main/resources/template/admin/ServiceImpl.ftl
eladmin-generator/src/main/resources/template/admin/Repository.ftl
eladmin-generator/src/main/resources/template/admin/Entity.ftl
eladmin-generator/src/main/resources/template/admin/Dto.ftl
eladmin-generator/src/main/resources/template/admin/Mapper.ftl
eladmin-generator/src/main/resources/template/admin/QueryCriteria.ftl
前端接口和页面生成模板:
eladmin-generator/src/main/resources/template/front/api.ftl
eladmin-generator/src/main/resources/template/front/index.ftl
MAVEN_OPTS="-Xmx512m" mvn -q -pl backend-foundation-boot3-starter test
MAVEN_OPTS="-Xmx512m" mvn -q -DskipTests -pl backend-foundation-boot3-starter package旧 Boot 2 starter 可继续单独构建:
MAVEN_OPTS="-Xmx512m" mvn -q -DskipTests -pl backend-foundation-starter -am install本仓库保留 Apache License 2.0。部分基础能力来自 Apache-2.0 许可的开源项目并在此基础上做组件化整理、配置模板补充和适配层扩展。使用和二次分发时请保留 LICENSE 文件及源码中的版权声明。