# Archives-Framework **Repository Path**: YangJie_Individual/archives-framework ## Basic Information - **Project Name**: Archives-Framework - **Description**: archives-framework → 企业级基础中台框架(对标若依Cloud + Spring Cloud Alibaba + 公司内部SDK体系) - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-06-23 - **Last Updated**: 2026-07-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Archives Framework > 企业统一基础能力平台 基于 **JDK 21 + Spring Boot 3.5 + DDD + Modular Monolith** 架构,为企业提供统一公共组件库。 ## 架构图 ```mermaid graph TB %% ===================== 示例应用层 ===================== subgraph EXAMPLE["archives-example(示例应用)"] EX_APP["示例应用"] end %% ===================== starter 层 ===================== subgraph STARTER["archives-starter(能力组件层)"] AI["archives-ai-starter"] LOG["archives-log-starter"] CACHE["archives-cache-starter"] WEB["archives-web-starter"] FEIGN["archives-feign-starter"] SECURITY["archives-security-starter"] VALID["archives-validation-starter"] REDIS["archives-redis-starter"] end %% ===================== 核心层 ===================== subgraph CORE["archives-core(核心基础能力)"] CORE_BASE["BaseEntity / BaseVO"] CORE_RESULT["Result / PageResponse"] end %% ===================== 通用能力层 ===================== subgraph COMMON["archives-common(通用工具能力)"] EXCEPTION["exception 统一异常处理"] IDGEN["id-generator ID生成器"] VO["vo 业务对象(ERP / CRM / ...)"] UTIL["工具类"] UTIL1["DateUtil"] UTIL2["StringUtil"] UTIL3["JsonUtil"] UTIL4["BeanUtil"] UTIL --> UTIL1 UTIL --> UTIL2 UTIL --> UTIL3 UTIL --> UTIL4 end %% ===================== BOM 版本管理 ===================== subgraph BOM["archives-bom(依赖版本管理)"] BOM_NODE["dependencyManagement 统一版本控制"] end %% ===================== 依赖关系 ===================== %% 示例依赖 starter EX_APP --> AI EX_APP --> LOG EX_APP --> CACHE EX_APP --> WEB EX_APP --> FEIGN EX_APP --> SECURITY EX_APP --> VALID EX_APP --> REDIS %% starter 依赖 core AI --> CORE LOG --> CORE CACHE --> CORE WEB --> CORE FEIGN --> CORE SECURITY --> CORE VALID --> CORE REDIS --> CORE %% core 依赖 common CORE --> COMMON %% common 内部关系 EXCEPTION --> UTIL IDGEN --> UTIL VO --> UTIL %% BOM 管理所有模块版本 BOM -.-> STARTER BOM -.-> CORE BOM -.-> COMMON ``` ## 模块说明 | 模块 | 说明 | 类型 | |------|------|------| | `archives-bom` | 统一版本管理 | POM | | `archives-common` | 工具类库 (Date/String/JSON/Bean/Collection/File/IP/Snowflake) | JAR | | `archives-core` | 核心模型 (BaseEntity/Result/PageResponse) | JAR | | `archives-exception` | 统一异常体系 + 全局异常处理 | JAR | | `archives-validation` | 自定义参数校验注解 | JAR | | `archives-vo` | 企业通用VO库 (ERP/CRM/MES/WMS/OA/Workflow/Payment/SMS/Email) | JAR | | `archives-id-generator` | 统一ID生成器 (Snowflake/UUID/Segment) | JAR | | `archives-redis-starter` | Redis封装 + 分布式锁 + 注解式缓存 | Starter | | `archives-cache-starter` | Spring Cache封装 | Starter | | `archives-log-starter` | AOP操作日志 + 异步落库 | Starter | | `archives-web-starter` | Web配置 + 请求日志 + 链路追踪 | Starter | | `archives-feign-starter` | OpenFeign封装 + 熔断 + 重试 | Starter | | `archives-security-starter` | 安全认证 (JWT) + SPI扩展 | Starter | | `archives-ai-starter` | Spring AI统一封装 (策略模式) | Starter | | `archives-test` | 单元测试 | JAR | | `archives-doc` | 文档模块 | POM | | `archives-example` | 示例应用 | JAR | ## 快速开始 ### 1. 引入 BOM ```xml com.archives archives-bom 1.0.0 pom import ``` ### 2. 按需引入模块 ```xml com.archives archives-web-starter com.archives archives-redis-starter com.archives archives-cache-starter com.archives archives-ai-starter com.archives archives-log-starter com.archives archives-feign-starter com.archives archives-security-starter com.archives archives-validation com.archives archives-id-generator ``` ### 3. 配置 ```yaml archives: redis: host: localhost port: 6379 password: your-password timeout: 3000 ai: provider: openai api-key: your-api-key model: gpt-4o security: secret: your-jwt-secret-at-least-256-bits expiration: 86400000 web: enable-cors: true cache: type: redis default-ttl: 3600 ``` ## 使用示例 ### 统一响应 ```java @RestController public class UserController { @GetMapping("/{id}") public Result getUser(@PathVariable Long id) { return Result.success(userService.getById(id)); } @GetMapping public Result> listUsers(PageRequest request) { return Result.success(userService.list(request)); } } ``` ### 操作日志 ```java @OperationLog(module = "用户管理", operation = "创建用户", type = "INSERT") @PostMapping public Result createUser(@Valid @RequestBody UserDTO dto) { return Result.success(userService.create(dto)); } ``` ### 参数校验 ```java @Data public class UserDTO { @NotBlank(message = "用户名不能为空") private String username; @Mobile private String phone; @Email private String email; @StrongPassword private String password; } ``` ### 分布式锁 ```java @RedisLock(key = "'order:' + #orderId", waitTime = 5, leaseTime = 30) public void processOrder(String orderId) { // 业务逻辑 } ``` ### 缓存 ```java @ArchivesCache(name = "user", key = "'user:' + #id", ttl = 1800) public UserVO getUserById(Long id) { return userMapper.selectById(id); } ``` ### ID生成 ```java @Autowired private IdGeneratorService idGeneratorService; String id = idGeneratorService.nextId("snowflake"); Long idLong = idGeneratorService.nextIdLong("uuid"); ``` ### AI调用 ```java @Autowired private AiClient aiClient; String response = aiClient.chat("你好,请介绍一下自己"); // 流式输出 Stream stream = aiClient.streamChat("写一首诗"); ``` ## 技术栈 | 技术 | 版本 | 用途 | |------|------|------| | JDK | 21 | 运行时 | | Spring Boot | 3.5.x | 基础框架 | | Spring Framework | 6.x | 核心框架 | | Spring AI | 1.0.x | AI能力 | | MyBatis Plus | 3.5.x | ORM | | Redis | - | 缓存/分布式锁 | | Jackson | - | JSON处理 | | Hutool | 5.8.x | 工具库 | | Lombok | 1.18.x | 简化开发 | | Micrometer | 1.13.x | 监控指标 | | Actuator | - | 应用监控 | ## 构建 ```bash # 编译 mvn clean install -DskipTests # 运行测试 mvn test # 发布到私服 mvn clean deploy ``` ## 自动装配 所有 Starter 采用 Spring Boot 3.x 标准自动装配方式: ``` META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports ``` ## License Copyright 2024 Archives Framework. All rights reserved.