一个基于Spring Boot的企业级图片库管理系统,集成AI智能分析、实时协作编辑和多级缓存等现代化特性。
- 多级缓存系统:L1(Caffeine) + L2(Redis)两级缓存,支持分布式缓存同步 3
- 实时协作编辑:基于WebSocket + LMAX Disruptor的高性能实时编辑 4
- 异步处理:文件清理等耗时操作异步执行,提升响应速度 5
graph TD
Browser["浏览器客户端"]
Browser -->|"HTTP REST /api/**"| REST["REST控制器层"]
Browser -->|"WebSocket /ws/picture/edit"| WS["WebSocket实时编辑"]
REST --> Service["业务服务层"]
WS --> Disruptor["Disruptor消息队列"]
Disruptor --> Service
Service --> DB[(MySQL数据库)]
Service --> Cache["多级缓存"]
Service --> COS["腾讯云对象存储"]
Service --> AI["AI服务集成"]
Cache --> L1["L1: Caffeine本地缓存"]
Cache --> L2["L2: Redis分布式缓存"]
系统采用四表设计,支持逻辑删除和软删除机制 8 :
- user表:用户信息和角色管理
- picture表:图片元数据和审核状态
- space表:空间配置和配额管理
- space_user表:空间成员和权限映射
- Java 11+
- MySQL 8.0+
- Redis 6.0+
- Maven 3.6+
- 克隆项目
git clone https://github.com/WeiWu-code/picture-gallery.git
cd picture-gallery- 配置数据库
# 创建数据库
mysql -u root -p < sql/init.sql- 配置应用
# 复制配置文件
cp src/main/resources/application-local.yml.example src/main/resources/application-local.yml
# 编辑配置文件,填入数据库、Redis、云服务密钥等- 启动应用
mvn spring-boot:run- 访问应用
- 多级空间:支持公共空间、私有空间和团队空间
- 配额控制:空间大小和数量限制 11
- 权限管理:查看者、编辑者、管理员三级权限
- 多人编辑:WebSocket实现的实时图片编辑协作
- 状态同步:编辑状态实时广播给所有参与者
- 高性能:Disruptor队列确保高并发下的稳定性
| 层级 | 技术选型 | 版本 |
|---|---|---|
| 框架 | Spring Boot | 2.7.6 |
| 语言 | Java | 11 |
| 数据库 | MySQL | 8.0+ |
| 缓存 | Redis + Caffeine | 6.0+ / 3.1.8 |
| ORM | MyBatis-Plus | 3.5.9 |
| 认证 | Sa-Token | 1.39.0 |
| 存储 | 腾讯云COS | 5.6.227 |
| 文档 | Knife4j | 4.4.0 |
项目集成Knife4j,提供完整的API文档 12 :
- 访问地址:http://localhost:8123/api/doc.html
- 支持在线调试和接口测试
欢迎提交Issue和Pull Request来改进项目!