kindergarten_java/docs/Java环境配置与启动指南.md

286 lines
6.9 KiB
Markdown
Raw Permalink Normal View History

# Java 后端启动完整指南
## ✅ 环境配置完成
当前系统状态(已完成配置):
-**Java 17.0.18** (Amazon Corretto) - 通过 SDKMAN 安装
-**Maven 3.9.13** - 通过 SDKMAN 安装
-**Python 3.9.6** - 已安装
-**MySQL 连接器** - 已安装
---
## 快速启动指南
### 方案 A使用命令行推荐
**步骤:**
1. **加载环境变量**
```bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
```
2. **验证安装**
```bash
java -version
mvn -version
```
3. **进入项目目录**
```bash
cd /Users/retirado/Program/ccProgram_0312/reading-platform-java
```
4. **启动后端**
```bash
mvn spring-boot:run
```
**优点**
- 快速直接,无需额外工具
- 可以看到完整的启动日志
- 便于调试
---
### 方案 B使用 IntelliJ IDEA图形界面
**步骤:**
1. 下载并安装 IntelliJ IDEA Community Edition (免费)
- 下载地址https://www.jetbrains.com/idea/download/
2. 打开 IntelliJ IDEA
3. 选择 `File``Open`
4. 选择目录:`/Users/retirado/Program/ccProgram_0312/reading-platform-java`
5. 等待 IDEA 自动识别项目并下载 Maven 依赖
6. 找到 `src/main/java/com/reading/platform/ReadingPlatformApplication.java`
7. 点击类名旁边的绿色播放按钮 ▶️
**优点**
- 图形化界面,操作简单
- 内置代码编辑和调试功能
- 无需手动配置环境变量
---
## 启动成功后的验证
### 1. 检查启动日志
控制台应显示以下内容表示启动成功:
```
Tomcat started on port 8080 (http)
Started ReadingPlatformApplication in X seconds
```
### 2. 访问 API 文档
```
http://localhost:8080/doc.html
```
Knife4j 文档界面提供:
- 完整的 API 列表
- 在线测试功能
- 接口参数说明
### 3. 测试登录接口
**请求示例:**
```bash
curl -X POST http://localhost:8080/api/auth/login \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"123456"}'
```
**预期响应:**
```json
{
"code": 200,
"message": "success",
"data": {
"token": "eyJhbGc...",
"userId": 1,
"username": "admin",
"name": "平台管理员",
"role": "admin"
}
}
```
### 4. 测试新 API 端点
使用返回的 token 测试受保护的接口:
```bash
TOKEN="返回的token值"
# 查询主题列表
curl http://localhost:8080/api/v1/admin/themes \
-H "Authorization: Bearer $TOKEN"
# 查询课程套餐
curl http://localhost:8080/api/v1/admin/packages \
-H "Authorization: Bearer $TOKEN"
# 查询资源库
curl http://localhost:8080/api/v1/admin/resources/libraries \
-H "Authorization: Bearer $TOKEN"
```
---
## 数据库配置
**数据库连接信息:**
```yaml
spring:
datasource:
url: jdbc:mysql://8.148.151.56:3306/reading_platform
username: root
password: reading_platform_pwd
```
**已创建的数据表:**
- `t_admin_user` - 管理员用户
- `t_teacher` - 教师用户
- `t_parent` - 家长用户
- `t_student` - 学生
- `t_tenant` - 租户
- `course_package` - 课程套餐
- `course_package_course` - 套餐课程关联
- `tenant_package` - 租户套餐
- `course_lesson` - 课程环节
- `lesson_step` - 教学环节
- `lesson_step_resource` - 环节资源关联
- `theme` - 主题字典
- `t_resource_library` - 资源库
- `t_resource_item` - 资源项目
---
## JWT 配置
```yaml
jwt:
secret: readingPlatformJwtSecretKeyForTokenGeneration2024
expiration: 86400000 # 24小时毫秒
```
---
## 已实现的 API 端点
### 认证接口
- `POST /api/auth/login` - 用户登录
- `GET /api/auth/me` - 获取当前用户信息
- `POST /api/auth/change-password` - 修改密码
### 超管端接口 (/api/v1/admin)
- **主题管理**: `/themes` - CRUD操作
- **课程套餐**: `/packages` - 创建、审核、发布、下线
- **课程环节**: `/courses/{courseId}/lessons` - 管理6种课程类型
- **资源库**: `/resources/libraries`, `/resources/items` - 资源库管理
- **文件上传**: `/files/upload` - 文件上传接口
### 学校端接口 (/api/v1/school)
- **套餐管理**: `/packages` - 查询、续费套餐
---
## 常见问题
### Q: 提示端口 8080 被占用
**A:** 查找并终止占用进程:
```bash
lsof -ti :8080 | xargs kill -9
```
### Q: SDKMAN 命令找不到
**A:** 需要先加载 SDKMAN 环境:
```bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
```
### Q: 编译失败
**A:** 清理并重新编译:
```bash
mvn clean compile
```
### Q: 数据库连接失败
**A:** 检查网络连接和数据库服务状态
---
## 项目结构
```
reading-platform-java/
├── src/main/java/com/reading/platform/
│ ├── ReadingPlatformApplication.java # 启动类
│ ├── common/ # 公共组件
│ │ ├── annotation/ # 注解定义
│ │ ├── aspect/ # AOP切面
│ │ ├── config/ # 配置类
│ │ ├── enums/ # 枚举定义
│ │ ├── exception/ # 异常处理
│ │ ├── response/ # 响应封装
│ │ └── security/ # 安全模块
│ ├── controller/ # 控制器
│ │ ├── admin/ # 超管端
│ │ ├── school/ # 学校端
│ │ ├── teacher/ # 教师端
│ │ └── parent/ # 家长端
│ ├── dto/ # 数据传输对象
│ │ ├── request/ # 请求DTO
│ │ └── response/ # 响应DTO
│ ├── entity/ # 实体类
│ ├── mapper/ # MyBatis Mapper
│ ├── service/ # 业务逻辑
│ └── util/ # 工具类
├── src/main/resources/
│ ├── application.yml # 应用配置
│ └── db/migration/ # 数据库迁移脚本
└── pom.xml # Maven配置
```
---
## 技术栈
| 技术 | 版本 | 说明 |
|------|------|------|
| Java | 17.0.18 | Amazon Corretto |
| Spring Boot | 3.2.3 | 基础框架 |
| MyBatis-Plus | 3.5.5 | ORM框架 |
| MySQL Connector | 8.3.0 | 数据库驱动 |
| JWT | jjwt 0.12.5 | Token生成 |
| Knife4j | 4.4.0 | API文档 |
| Lombok | - | 代码简化 |
| Hutool | 5.8.26 | 工具库 |
---
## 开发模式提示
### 启用调试日志
`application.yml` 中设置:
```yaml
logging:
level:
com.reading.platform: debug
```
### 热重载(开发时)
使用 Spring Boot DevTools 可实现自动重载(需添加依赖)
### 测试账号
- **超管**: admin / 123456
- **学校**: school1 / 123456
- **教师**: teacher1 / 123456
- **家长**: parent1 / 123456
---
*最后更新: 2026-03-12 - Java后端环境配置完成*