# Chai-Admin-Service
**Repository Path**: wangyunlong_1011/chai-admin-service
## Basic Information
- **Project Name**: Chai-Admin-Service
- **Description**: Chai Admin Service 是一个现代化的后台管理系统服务端,采用最新的 Java 21 + Spring Boot 3 + Spring Security + PostgreSQL17 + JWT 技术栈构建,提供完整的用户认证、权限管理、系统管理等功能。项目采用模块化设计,代码结构清晰,易于扩展和维护。苦于一直没找到自己合适的脚手架,因而随便写写,真的只是随便写写个开源项目,真的~
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 4
- **Created**: 2025-10-16
- **Last Updated**: 2025-10-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 🍃 Chai Admin Service
[](https://spring.io/projects/spring-boot)
[](https://spring.io/projects/spring-security)
[](https://baomidou.com/)
[](https://www.postgresql.org/)
[](LICENSE)
**基于 Spring Boot 3 + Spring Security + JWT 的现代化后台管理系统服务端**
[English](README_EN.md) | 简体中文
## 📖 项目简介
Chai Admin Service 是一个现代化的后台管理系统服务端,采用最新的 Spring Boot 3 技术栈构建,提供完整的用户认证、权限管理、系统管理等功能。项目采用模块化设计,代码结构清晰,易于扩展和维护。
### ✨ 核心特性
- 🚀 **现代化技术栈**: Spring Boot 3.4.2 + Spring Security 6.4.2 + JDK 21
- 🔐 **安全认证**: JWT Token 认证 + Redis 分布式会话管理
- 🏗️ **模块化架构**: 清晰的模块划分,便于维护和扩展
- 📊 **数据库支持**: PostgreSQL + MyBatis Plus + Druid 连接池
- 🛡️ **权限控制**: 基于 RBAC 的细粒度权限控制
- 📝 **API 文档**: 完整的 RESTful API 文档
- 🐳 **容器化**: 支持 Docker 部署
- 📈 **监控运维**: Druid 监控 + Spring Boot Actuator
## 🛠️ 技术栈
| 技术 | 版本 | 说明 |
|------|------|------|
| Spring Boot | 3.4.2 | 基础框架 |
| Spring Security | 6.4.2 | 安全认证框架 |
| MyBatis Plus | 3.5.12 | 持久层框架 |
| PostgreSQL | 42.7.5 | 关系型数据库 |
| Redis | - | 缓存和会话存储 |
| Druid | 1.2.23 | 数据库连接池 |
| JWT | 0.12.6 | JSON Web Token |
| Hutool | 6.0.0-M22 | Java 工具类库 |
| JDK | 21+ | Java 开发环境 |
| Maven | 3.6+ | 项目构建工具 |
## 🏗️ 项目结构
```
chai-admin-service/
├── chai-admin-dependency/ # 依赖管理模块 (BOM)
│ └── pom.xml # 统一依赖版本管理
├── chai-admin-common/ # 公共模块
│ ├── src/main/java/org/shamee/common/
│ │ ├── config/ # 配置类
│ │ ├── constant/ # 常量定义
│ │ ├── entity/ # 基础实体
│ │ ├── request/ # 请求对象
│ │ ├── response/ # 响应对象
│ │ └── util/ # 工具类
│ └── pom.xml
├── chai-admin-system/ # 系统核心模块
│ ├── src/main/java/org/shamee/system/
│ │ ├── config/ # 配置类
│ │ ├── controller/ # 控制器
│ │ ├── entity/ # 实体类
│ │ ├── mapper/ # 数据访问层
│ │ ├── security/ # 安全相关
│ │ └── service/ # 业务逻辑层
│ └── pom.xml
├── chai-admin-launcher/ # 启动模块
│ ├── src/main/java/org/shamee/
│ │ └── Application.java # 启动类
│ ├── src/main/resources/
│ │ ├── application.yml # 主配置文件
│ │ ├── application-dev.yml # 开发环境配置
│ │ └── application-prod.yml # 生产环境配置
│ └── pom.xml
├── docker-compose.yml # Docker Compose 配置
├── Dockerfile # Docker 镜像构建文件
├── API.md # API 文档
├── DEPLOYMENT.md # 部署文档
└── pom.xml # 父级 POM
```
## 🚀 快速开始
### 环境要求
- **JDK**: 21 或更高版本
- **Maven**: 3.6.0 或更高版本
- **PostgreSQL**: 12 或更高版本
- **Redis**: 6 或更高版本
### 1. 克隆项目
```bash
git clone https://gitee.com/shamee/chai-admin-service.git
cd chai-admin-service
```
### 2. 数据库配置
#### 创建 PostgreSQL 数据库
```sql
CREATE DATABASE chai_admin;
```
#### 执行初始化脚本
```bash
# 如果有初始化脚本,执行以下命令
psql -U postgres -d chai_admin -f init.sql
```
### 3. 配置文件
修改 `chai-admin-launcher/src/main/resources/application-dev.yml`:
```yaml
spring:
datasource:
url: jdbc:postgresql://localhost:5432/chai_admin
username: your_username
password: your_password
data:
redis:
host: localhost
port: 6379
password: your_redis_password
```
### 4. 编译和运行
```bash
# 编译项目
mvn clean compile
# 打包项目
mvn clean package -DskipTests
# 运行项目
mvn spring-boot:run -pl chai-admin-launcher
# 或者运行 JAR 包
java -jar chai-admin-launcher/target/chai-admin-launcher-1.0.0-SNAPSHOT.jar
```
### 5. 访问应用
- **应用地址**: http://localhost:8000
- **API 文档**: 查看 [API.md](API.md)
- **Druid 监控**: http://localhost:8000/druid (用户名: admin, 密码: 123456)
- **健康检查**: http://localhost:8000/actuator/health
## 🔑 默认账户
| 用户名 | 密码 | 角色 | 说明 |
|--------|------|------|------|
| admin | 123456 | 超级管理员 | 拥有所有权限 |
| test | 123456 | 普通用户 | 基础查询权限 |
## 📚 功能模块
### 🔐 认证授权
- JWT Token 认证
- 用户登录/登出
- 令牌刷新
- 分布式会话管理
- 登录失败锁定机制
### 👤 用户管理
- 用户增删改查
- 密码重置
- 用户状态管理
- 用户角色分配
### 🔒 角色权限
- 角色管理
- 权限分配
- 数据权限范围控制
- 菜单权限控制
### 📋 系统管理
- 菜单管理
- 部门管理
- 操作日志
- 登录日志
### 📊 系统监控
- Druid 数据库监控
- 系统健康检查
- JVM 监控
- 缓存监控
## 🐳 Docker 部署
### 快速部署
**方式一:使用部署脚本(推荐)**
```bash
# Linux/macOS
chmod +x docker-deploy.sh
./docker-deploy.sh deploy
# Windows
docker-deploy.bat deploy
```
**方式二:使用 Docker Compose**
```bash
# 1. 复制环境变量配置
cp .env.example .env
# 2. 编辑配置文件(修改密码和密钥)
vim .env
# 3. 构建并启动所有服务
docker-compose up -d --build
# 4. 查看服务状态
docker-compose ps
```
### 服务管理
```bash
# 查看日志
./docker-deploy.sh logs
# 检查服务状态
./docker-deploy.sh status
# 重启服务
./docker-deploy.sh restart
# 停止服务
./docker-deploy.sh stop
```
### 访问地址
部署成功后,可以访问:
- **应用主页**: http://localhost:8000
- **健康检查**: http://localhost:8000/actuator/health
- **Druid 监控**: http://localhost:8000/druid (admin/123456)
> 📖 详细的 Docker 部署指南请参考:[DOCKER_GUIDE.md](DOCKER_GUIDE.md)
## 📖 API 文档
详细的 API 文档请查看 [API.md](API.md),包含:
- 认证接口
- 用户管理接口
- 角色管理接口
- 菜单管理接口
- 部门管理接口
- 系统监控接口
### 快速测试
```bash
# 登录获取 Token
curl -X POST http://localhost:8000/api/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"123456"}'
# 获取用户信息
curl -X GET http://localhost:8000/api/auth/me \
-H "Authorization: Bearer "
```
## ⚙️ 配置说明
### JWT 配置
```yaml
chai:
jwt:
secret: your-jwt-secret-key
access-token-expire-time: 120 # 访问令牌过期时间(分钟)
refresh-token-expire-time: 7 # 刷新令牌过期时间(天)
```
### 安全配置
```yaml
chai:
security:
max-login-fail-count: 5 # 最大登录失败次数
account-lock-time: 30 # 账户锁定时间(分钟)
password-strength: 10 # 密码加密强度
```
## 🤝 贡献指南
我们欢迎所有形式的贡献,包括但不限于:
- 🐛 报告 Bug
- 💡 提出新功能建议
- 📝 改进文档
- 🔧 提交代码
### 贡献步骤
1. Fork 本项目
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 打开 Pull Request
### 开发规范
- 遵循阿里巴巴 Java 开发手册
- 使用 Lombok 简化代码
- 统一使用 Hutool 工具类
- 编写单元测试
- 更新相关文档
## 📄 许可证
本项目采用 [MIT](LICENSE) 许可证 - 查看 LICENSE 文件了解详情。
## 🙏 致谢
感谢以下开源项目的支持:
- [Spring Boot](https://spring.io/projects/spring-boot) - 应用框架
- [Spring Security](https://spring.io/projects/spring-security) - 安全框架
- [MyBatis Plus](https://baomidou.com/) - 持久层框架
- [Hutool](https://hutool.cn/) - Java 工具类库
- [Druid](https://github.com/alibaba/druid) - 数据库连接池
- [PostgreSQL](https://www.postgresql.org/) - 数据库
- [Redis](https://redis.io/) - 缓存数据库
## 📞 联系方式
- **作者**: shamee
- **邮箱**: [your-email@example.com]
- **项目地址**: [https://github.com/your-username/chai-admin-service]
如有问题或建议,欢迎通过以下方式联系:
- 提交 [Issue](https://gitee.com/shamee/chai-admin-service/issues)
- 发送邮件
- 加入讨论群
---
⭐ 如果这个项目对你有帮助,请给它一个 Star!