987ba9825f48af136254f943a05322a29b560162
知识管理系统
基于 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+
数据库配置
- 创建数据库:
CREATE DATABASE knowledge_management_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- 导入初始化SQL脚本:
mysql -u root -p knowledge_management_system < docs/sql/knowledge_management_system.sql
运行项目
方式一:Maven 运行
cd demo_1
mvn spring-boot:run
方式二:打包运行
mvn clean package
java -jar target/demo_1-0.0.1-SNAPSHOT.jar
方式三:Docker Compose
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- 生产环境配置
开发指南
添加新功能
- 创建实体类 (
entity/) - 创建Mapper接口 (
mapper/) - 创建Service接口和实现 (
service/和service/impl/) - 创建DTO和VO (
dto/和vo/) - 创建Controller (
controller/)
日志配置
日志文件位于 /app/logs/file-management-system.log,支持按天轮转,保留30天历史。
部署说明
Docker部署
# 使用官方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"]
健康检查
curl http://localhost:8080/api/actuator/health
License
MIT License
联系信息
如有问题请联系开发者。
Description
Languages
Java
99.9%