基于 JavaGuide 题库构建的 Java 面试刷题平台,支持随机刷题、错题本、收藏、自定义题目和 AI 生成面试题。
- 随机刷题 — 按分类/子分类随机抽题,支持自主作答和 AI 批改
- 分类浏览 — 按模块系统学习,记录阅读时长
- 错题本 — 标记错题,基于间隔重复安排复习
- 收藏 — 随时收藏重点题目
- 自定义题目 — 创建个人题目或公开到公共题库
- AI 生成 — 调用 Claude API,从题库原题生成更贴近面试场景的问法
题库来源:Java、数据库(MySQL/Redis)、计算机基础、系统设计(Spring/MyBatis)、分布式、高性能、高可用,共约 2000+ 道。
| 层 | 技术 |
|---|---|
| 前端 | Next.js 16 · React 19 · TypeScript · Tailwind CSS v4 · Zustand |
| 后端 | Spring Boot 3.3 · Spring Security · JPA/Hibernate · JWT |
| 数据库 | MySQL 8 |
| AI | Anthropic Claude(可选) |
- Java 17+
- Node.js 18+
- Docker
docker run -d \
--name mysql-trainer \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_DATABASE=java_trainer \
-p 3306:3306 \
mysql:8cd backend
./mvnw spring-boot:run后端默认监听 http://localhost:8080,首次启动 Hibernate 自动建表。
导入题库(仅首次,需本地有 JavaGuide 仓库):
在 backend/src/main/resources/application.yml 中配置 JavaGuide 路径:
importer:
javaguide-path: /path/to/JavaGuide/docs然后执行:
./mvnw spring-boot:run -Dspring-boot.run.arguments=--importcd frontend
npm install
npm run dev前端默认访问 http://localhost:3000。
在 backend/src/main/resources/application.yml 中填入 Anthropic API Key:
ai:
anthropic:
api-key: "sk-ant-xxxxxxxx"
model: claude-haiku-4-5-20251001获取 Key:前往 console.anthropic.com 注册并创建。
不配置时 AI 生成功能不可用,其余功能正常。
spring:
datasource:
url: jdbc:mysql://localhost:3306/java_trainer
username: root
password: 123456
jwt:
secret: <base64-encoded-secret> # 生产环境请替换java-interview-trainer/
├── backend/ # Spring Boot 后端
│ └── src/main/java/com/javatrainer/
│ ├── controller/ # REST API
│ ├── service/ # 业务逻辑(含 AI 生成)
│ ├── entity/ # JPA 实体
│ ├── repository/ # Spring Data JPA
│ ├── security/ # JWT 认证
│ ├── importer/ # JavaGuide 题库导入
│ └── parser/ # Markdown 解析器
├── frontend/ # Next.js 前端
│ └── src/
│ ├── app/ # 页面路由
│ ├── components/ # 通用组件
│ ├── store/ # Zustand 状态管理
│ └── lib/api.ts # API 封装
└── README.md
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/auth/register |
注册 |
| POST | /api/auth/login |
登录 |
| GET | /api/questions/random |
随机题目 |
| GET | /api/questions/categories |
分类列表 |
| POST | /api/practice/submit |
提交作答 |
| GET | /api/practice/wrong |
错题列表 |
| GET/POST/DELETE | /api/favorites/** |
收藏管理 |
| GET/POST/PUT/DELETE | /api/custom-questions/** |
自定义题目 |
| POST | /api/ai/generate |
AI 生成面试题 |
| GET | /api/stats/summary |
学习统计 |