CodeAS Backend 是 akko.space 网站的后端服务项目,基于 Spring Boot 3.x 构建,采用混合分层架构设计,提供用户管理、角色管理、操作审计等核心功能,为 CodeAS 平台提供完整的后端支撑。部分高级功能模块正在持续开发完善中。
- 混合分层架构:Foundation(基础层)→ Platform(平台层)→ Modules(业务层)
- 多Schema数据库设计:foundation_schema、platform_schema、business_schema、integration_schema
- 模块化设计:高内聚、低耦合的模块结构
- JWT认证:基于JWT的无状态认证机制
- 角色权限控制:基于RBAC的权限管理框架
- 会话管理:Redis会话存储,支持单点登录
- 密码安全:BCrypt加密,密码强度验证
- PostgreSQL:主数据库,支持多Schema
- 智能多级缓存:L1本地缓存(Caffeine)+ L2分布式缓存(Redis)
- MyBatis Plus:优雅的ORM框架
- Flyway:数据库版本管理
- 操作审计:基础的操作日志记录
- 健康检查:Spring Boot Actuator
- 链路追踪:请求追踪和日志关联
- 性能监控:JVM监控、缓存监控
- API文档:自动导出OpenAPI文档(JSON/YAML格式)
- Docker支持:完整的容器化方案
- Assembly打包:生产环境部署包
- 脚本管理:启动、停止、重启、状态检查
- 环境隔离:dev、test、prod环境配置
技术 | 版本 | 说明 |
---|---|---|
Java | 21 | 编程语言 |
Spring Boot | 3.5.0 | 应用框架 |
PostgreSQL | 15+ | 主数据库 |
Redis | 7+ | 缓存数据库 |
MyBatis Plus | 3.5.12 | ORM框架 |
Flyway | 11.9.0 | 数据库迁移 |
Caffeine | 3.2.0 | 本地缓存 |
JWT | 0.12.6 | 认证令牌 |
SpringDoc | 2.8.8 | API文档 |
Dotenv Java | 3.2.0 | 环境变量管理 |
Lombok | 1.18.38 | 代码生成工具 |
Docker | - | 容器化 |
- Java 21+
- Maven 3.8+
- PostgreSQL 15+
- Redis 7+
- Docker & Docker Compose(可选)
- 克隆项目
git clone <repository-url>
cd backend
- 配置数据库
# 创建数据库(数据库名称固定为 codeas)
createdb -U postgres codeas
配置环境变量:
# 复制环境变量模板
cp .env.example .env
然后编辑 .env
文件,配置实际的连接信息:
# 应用配置
SERVER_PORT=26300
# 数据库配置(数据库名称固定为 codeas)
DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=your_actual_username
DB_PASSWORD=your_actual_password
# Redis配置
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=your_redis_password
# JWT密钥
JWT_SECRET=your_jwt_secret
- 启动Redis
redis-server
- 初始化数据库
# 执行数据库迁移(创建表结构和初始数据)
mvn flyway:migrate
- 运行应用
mvn spring-boot:run
- 访问应用
- 应用地址:http://localhost:26300
- API文档:http://localhost:26300/api/swagger-ui.html
- 健康检查:http://localhost:26300/actuator/health
- 自动导出的API文档:
./docs/api/generated/
目录(应用启动后自动生成)
- 使用Docker Compose
cd docker
docker-compose up -d
- 查看服务状态
docker-compose ps
docker-compose logs -f backend
- 打包应用
mvn clean package assembly:single
- 解压部署包
cd target
tar -xzf backend-1.0.0-SNAPSHOT-distribution.tar.gz
cd backend-1.0.0-SNAPSHOT
- 环境检查
./sbin/env-check.sh
- 启动应用
./bin/start.sh
- 检查状态
./bin/status.sh
backend/
├── src/main/
│ ├── java/space/akko/
│ │ ├── foundation/ # 基础层
│ │ │ ├── common/ # 通用类
│ │ │ ├── config/ # 配置类
│ │ │ ├── constant/ # 常量
│ │ │ ├── exception/ # 异常处理
│ │ │ ├── utils/ # 工具类
│ │ │ ├── annotation/ # 注解
│ │ │ ├── aspect/ # 切面
│ │ │ ├── filter/ # 过滤器
│ │ │ └── cache/ # 缓存
│ │ ├── platform/ # 平台层
│ │ │ ├── user/ # 用户管理
│ │ │ ├── role/ # 角色管理
│ │ │ ├── permission/ # 权限管理
│ │ │ ├── menu/ # 菜单管理
│ │ │ ├── config/ # 系统配置
│ │ │ ├── audit/ # 操作审计
│ │ │ └── dictionary/ # 数据字典
│ │ ├── modules/ # 业务层(预留)
│ │ └── BackendApplication.java
│ ├── resources/
│ │ ├── db/migration/ # 数据库迁移脚本
│ │ ├── mapper/ # MyBatis映射文件
│ │ └── application*.yml # 配置文件
│ └── assembly/ # 打包配置
├── docker/ # Docker配置
├── sql/ # SQL脚本
└── doc/ # 项目文档
- 用户名:admin
- 密码:admin123
- 角色:超级管理员
# 应用健康状态
curl http://localhost:26300/actuator/health
# 应用信息
curl http://localhost:26300/actuator/info
# 指标信息
curl http://localhost:26300/actuator/metrics
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature
) - 提交更改 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 打开 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- 作者:akko
- 邮箱:akko@akko.space
- 网站:https://akko.space
- 项目地址:https://github.com/akko/CodeAS-backend
- 部署指南 - 详细的部署说明
查看 CHANGELOG.md 了解详细的版本变更记录。