Files
my-springboot-project/README.md
2026-06-09 13:34:21 +08:00

192 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 知识管理系统
基于 Spring Boot 3.2.5 构建的知识管理系统后端服务提供用户管理、文件管理、AI问答、考试系统等核心功能。
## 技术栈
- **框架**: Spring Boot 3.2.5
- **语言**: Java 17
- **数据库**: MySQL 8.0+
- **ORM**: MyBatis Plus 3.5.5
- **缓存**: Redis
- **认证**: JWT
- **API文档**: SpringDoc OpenAPI (Swagger)
## 快速开始
### 环境要求
- JDK 17+
- Maven 3.8+
- MySQL 8.0+
- Redis 6.0+
### 数据库配置
1. 创建数据库:
```sql
CREATE DATABASE knowledge_management_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
2. 导入初始化SQL脚本
```bash
mysql -u root -p knowledge_management_system < docs/sql/knowledge_management_system.sql
```
### 运行项目
**方式一Maven 运行**
```bash
cd demo_1
mvn spring-boot:run
```
**方式二:打包运行**
```bash
mvn clean package
java -jar target/demo_1-0.0.1-SNAPSHOT.jar
```
**方式三Docker Compose**
```bash
docker-compose up -d
```
### 访问地址
- **应用地址**: http://localhost:8080/api
- **Swagger文档**: http://localhost:8080/api/swagger-ui.html
- **API文档**: http://localhost:8080/api/v3/api-docs
## 项目结构
```
src/main/java/top/tqx/demo_1/
├── annotation/ # 自定义注解(限流、权限)
├── aspect/ # AOP切面日志、限流
├── common/ # 通用响应封装
├── config/ # 配置类数据源、Redis、CORS等
├── constant/ # 常量定义
├── controller/ # REST API控制层
├── dto/ # 数据传输对象
├── entity/ # 数据库实体模型
├── enums/ # 枚举定义
├── exception/ # 自定义异常
├── handler/ # 全局异常处理
├── interceptor/ # 拦截器(权限验证)
├── mapper/ # MyBatis Mapper接口
├── service/ # 业务逻辑层
│ └── impl/ # 服务实现类
├── util/ # 工具类
├── vo/ # 视图对象
└── Demo1Application.java
```
## 核心功能模块
| 模块 | Controller | 说明 |
|------|------------|------|
| 用户管理 | UserController | 用户增删改查、登录、权限管理 |
| 角色权限 | RoleController / PermissionController | 角色管理、权限分配 |
| 部门管理 | DepartmentController | 部门组织结构管理 |
| 文件管理 | FileController | 文件上传、下载、权限控制 |
| AI聊天 | AIChatController | 智能问答、RAG检索 |
| 考试系统 | ExamController / FormalExamController | 试卷生成、考试管理 |
| 题目管理 | QuestionController | 题库管理、题目统计 |
| FAQ管理 | FAQController | 常见问题管理 |
| 搜索功能 | SearchController | 全文检索 |
| 错题管理 | WrongQuestionController | 错题收集、重做 |
| 反馈管理 | FeedbackController | 用户反馈收集 |
## API接口分类
### 认证接口
- `POST /api/auth/login` - 用户登录
- `POST /api/auth/logout` - 用户登出
### 用户管理
- `GET /api/users` - 获取用户列表
- `POST /api/users` - 创建用户
- `GET /api/users/{id}` - 获取用户详情
- `PUT /api/users/{id}` - 更新用户信息
- `DELETE /api/users/{id}` - 删除用户
### 文件管理
- `POST /api/files/upload` - 文件上传
- `GET /api/files/{id}` - 获取文件信息
- `GET /api/files/{id}/download` - 文件下载
- `DELETE /api/files/{id}` - 删除文件
### AI聊天
- `POST /api/ai/chat` - AI问答
- `POST /api/ai/stream` - 流式问答
### 考试管理
- `POST /api/exam/generate` - 生成试卷
- `POST /api/exam/submit` - 提交答卷
- `GET /api/exam/records` - 获取考试记录
## 配置说明
### 环境变量
| 变量名 | 默认值 | 说明 |
|--------|--------|------|
| DB_USERNAME | root | 数据库用户名 |
| DB_PASSWORD | 123456 | 数据库密码 |
| REDIS_HOST | redis | Redis地址 |
| REDIS_PORT | 6379 | Redis端口 |
| JWT_SECRET | your-secret-key... | JWT密钥 |
| AI_HOST | localhost | AI服务地址 |
| AI_PORT | 5001 | AI服务端口 |
### 配置文件
- `application.yml` - 主配置文件
- `application-dev.yml` - 开发环境配置
- `application-prod.yml` - 生产环境配置
## 开发指南
### 添加新功能
1. 创建实体类 (`entity/`)
2. 创建Mapper接口 (`mapper/`)
3. 创建Service接口和实现 (`service/``service/impl/`)
4. 创建DTO和VO (`dto/``vo/`)
5. 创建Controller (`controller/`)
### 日志配置
日志文件位于 `/app/logs/file-management-system.log`支持按天轮转保留30天历史。
## 部署说明
### Docker部署
```dockerfile
# 使用官方JDK 17镜像
FROM openjdk:17-jdk-slim
WORKDIR /app
COPY target/demo_1-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
```
### 健康检查
```bash
curl http://localhost:8080/api/actuator/health
```
## License
MIT License
## 联系信息
如有问题请联系开发者。