# spring-boot-starter
**Repository Path**: luminion/spring-boot-starter
## Basic Information
- **Project Name**: spring-boot-starter
- **Description**: 开箱即用的spring-boot-starter, 提供JSON序列化/方法限流/字段注解脱敏加解密/Spring-core多类型converter/xss防护/错误日志邮件推送/多个注解驱动等功能
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: https://github.com/luminion/spring-boot-starter
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-12-24
- **Last Updated**: 2026-04-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# velo-spring-boot-starter
一个按 Spring Boot 官方 `starter` / `autoconfigure` 模式重构的工具箱工程,提供幂等、限流、分布式锁、Jackson、Redis、缓存、MyBatis-Plus、Web 增强、XSS 和日志等能力。
## 模块结构
### 聚合与版本管理
- `velo-spring-boot-project`:父工程,统一插件与模块管理。
- `velo-spring-boot2-dependencies` / `velo-spring-boot3-dependencies` / `velo-spring-boot4-dependencies`:分别管理 Spring Boot 2/3/4 依赖版本。
### 公共与差异层
- `velo-autoconfigure-common`:公共注解、SPI、切面、异常、配置属性、工具类,以及核心、缓存、Redis、日期时间转换、限流、防重、锁等跨 Boot 版本自动配置。
- `velo-autoconfigure-javax`:`javax.*` / Servlet API 相关自动配置,供 Boot 2 使用。
- `velo-autoconfigure-jakarta`:`jakarta.*` / Servlet API 相关自动配置,供 Boot 3/4 使用。
- `velo-autoconfigure-jackson2`:Jackson 2 自动配置,供 Boot 2/3 使用。
- `velo-autoconfigure-jackson3`:Jackson 3 自动配置,供 Boot 4 使用。
### 对外发布模块
- `velo-spring-boot2-starter` / `velo-spring-boot2-autoconfigure`
- `velo-spring-boot3-starter` / `velo-spring-boot3-autoconfigure`
- `velo-spring-boot4-starter` / `velo-spring-boot4-autoconfigure`
## 功能特性
- `@Idempotent`:防重复提交,支持 SpEL,支持 Redis / Redisson / Caffeine / JDK 回退。
- `@RateLimit`:方法或类级限流,支持 SpEL,支持 Redis / Redisson / Caffeine / JDK 回退。
- `@Lock`:分布式锁,支持 SpEL,支持 Redis / Redisson / JDK 回退。
- Jackson 增强:字符串处理、枚举展开、数字转字符串、日期时间格式统一。
- Redis 与 Cache 自动配置:统一 JSON 序列化。
- MyBatis-Plus 自动配置:分页、乐观锁、防全表更新。
- Web 增强:日期时间转换、可选 CORS、可选请求日志。
- XSS:提供清洗器与可选字符串转换能力。
## 快速开始
### 1. 本地安装
```bash
mvn -q -DskipTests install
```
### 2. 选择对应版本 starter
Spring Boot 2:
```xml
io.github.luminion
velo-spring-boot2-starter
1.0.0-SNAPSHOT
```
Spring Boot 3:
```xml
io.github.luminion
velo-spring-boot3-starter
1.0.0-SNAPSHOT
```
Spring Boot 4:
```xml
io.github.luminion
velo-spring-boot4-starter
1.0.0-SNAPSHOT
```
## 配置示例
```yaml
velo:
rate-limit-prefix: rateLimit:
idempotent-prefix: idempotent:
lock-prefix: lock:
log-level: INFO
date-time-format:
enabled: true
date: yyyy-MM-dd
time: HH:mm:ss
date-time: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
cache:
enabled: true
key-prefix: ""
key-separator: ":"
default-ttl-seconds: 3000
ttl-map: {}
jackson:
enabled: true
write-number-as-string: true
enum-description-enabled: false
redis:
enabled: true
mybatis-plus:
enabled: true
web:
allow-cors: false
request-logging:
enabled: false
include-client-info: true
include-query-string: true
include-payload: false
max-payload-length: 2000
xss:
string-converter-enabled: false
```
## 设计说明
- `starter` 模块不放业务代码,只聚合依赖。
- 自动配置放在 `autoconfigure` 模块,按 `javax` / `jakarta` 和 Jackson 版本拆分。
- `core` / `cache` / `redis` / `converter` 等无 `javax` / `jakarta` 差异的自动配置统一收敛到 `velo-autoconfigure-common`。
- Redisson / Redis / Caffeine / JDK 等后端按自动装配顺序显式兜底,默认优先级为 `Redisson > Redis > Caffeine > JDK`。
- 请求日志和全局字符串 XSS 清洗默认关闭,改为显式开关。
## 构建与验证
```bash
mvn -q -DskipTests compile
mvn test
```