# g2rain-spring-boot-starter(通用 Starter)

g2rain-spring-boot-starter 是一个设计精良的 Spring Boot Starter 集合项目,面向微服务开发提供统一基础设施支持,采用模块化设计,支持按需引入。

# 核心覆盖模块

  • g2rain-starter-web-infra(Web 基础设施)
    • 全局 HTTP 请求封装、请求体缓存
    • 身份上下文注入、登录权限校验
    • 统一异常处理、访问日志记录
  • g2rain-starter-data-isolation(数据隔离)
    • 多租户/应用隔离(MyBatis 插件实现行级数据隔离)
    • SQL AST 解析与改写(基于 JSQLParser)
    • 注解配置简化:@DataIsolation@WithIsolation
  • g2rain-starter-cache-sync(缓存同步)
    • Redis + RabbitMQ 同步(按配置启用)
    • 事件发布/订阅,实现跨服务一致性
  • g2rain-starter-data-redis(Redis 数据处理)
    • Value/Hash/List/Set/ZSet 等数据结构支持
    • 分布式锁(Redisson)
    • 批量读写与类型安全
  • g2rain-starter-logging-trace(日志追踪)
    • TraceId/SpanId 自动集成
    • 结构化 JSON 日志、调用链路追踪
    • 可上报到 Kafka
  • g2rain-starter-identity-client(身份客户端)
    • 分布式唯一身份生成(多策略)
  • g2rain-starter-aegis-core(核心防护)
    • 统一基础保护、依赖聚合、服务初始化简化

# 快速开始

# 环境要求

  • Java:25+
  • Maven:3.6+
  • Spring Boot:3.5.6+

# 引入方式

完整依赖(推荐):

<dependency>
  <groupId>com.g2rain</groupId>
  <artifactId>g2rain-starter-aegis-core</artifactId>
  <version>0.1.1</version>
</dependency>

按需引入(示例:Web 基础设施):

<dependency>
  <groupId>com.g2rain</groupId>
  <artifactId>g2rain-starter-web-infra</artifactId>
  <version>0.1.1</version>
</dependency>

# Web 基础设施配置(示例)

g2rain:
  web:
    enabled: true
    http-wrapper-filter-order: 100
    principal-context-filter-order: 150
    access-log-filter-order: 200
    login-guard-interceptor-order: 300
    identity-param-injector-order: 400

并可通过注解方式在 Controller 侧声明登录与身份注入要求:

@RestController
public class DemoController {
  @LoginGuard(require = true, anonymous = false)
  @IdentityInject(userIdRequire = true)
  @GetMapping("/api/demo")
  public Result<String> demo(@RequestParam String param) {
    return Result.success("Hello World");
  }
}