# 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.