kindergarten_java/docs/Java环境配置与启动指南.md
Claude Opus 4.6 081fac9d97 feat: Java后端迁移完成 - 资源管理API修复与文档更新
完成从Node.js/NestJS到Java Spring Boot的后端迁移,修复资源管理API错误。

**核心修复:**
- 修复资源库API 500错误 - ResourceLibrary/ResourceItem实体与数据库表结构对齐
- 更新ID类型从Long改为String,匹配数据库varchar(32)
- 修正字段映射(libraryType → type)

**新增Java实体(7个):**
- CoursePackage, CoursePackageCourse, TenantPackage
- CourseLesson, LessonStep, LessonStepResource
- Theme

**新增API控制器(5个):**
- AdminResourceController - 资源库管理
- AdminPackageController - 课程套餐管理
- AdminCourseLessonController - 课程环节管理
- AdminThemeController - 主题字典管理
- SchoolPackageController - 学校套餐管理

**新增服务层(5个):**
- ResourceLibraryService, CoursePackageService, CourseLessonService
- ThemeService, FileStorageService

**文档更新:**
- 新增 Java环境配置与启动指南.md
- 新增 Java后端启动完整指南.md
- 新增 数据库迁移指南.md
- 更新 CHANGELOG.md 和开发日志

**前端修复:**
- 解决package.json合并冲突

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 19:49:48 +08:00

6.9 KiB
Raw Blame History

Java 后端启动完整指南

环境配置完成

当前系统状态(已完成配置):

  • Java 17.0.18 (Amazon Corretto) - 通过 SDKMAN 安装
  • Maven 3.9.13 - 通过 SDKMAN 安装
  • Python 3.9.6 - 已安装
  • MySQL 连接器 - 已安装

快速启动指南

方案 A使用命令行推荐

步骤:

  1. 加载环境变量

    source "$HOME/.sdkman/bin/sdkman-init.sh"
    
  2. 验证安装

    java -version
    mvn -version
    
  3. 进入项目目录

    cd /Users/retirado/Program/ccProgram_0312/reading-platform-java
    
  4. 启动后端

    mvn spring-boot:run
    

优点

  • 快速直接,无需额外工具
  • 可以看到完整的启动日志
  • 便于调试

方案 B使用 IntelliJ IDEA图形界面

步骤:

  1. 下载并安装 IntelliJ IDEA Community Edition (免费)

  2. 打开 IntelliJ IDEA

  3. 选择 FileOpen

  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. 测试登录接口

请求示例:

curl -X POST http://localhost:8080/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"admin123"}'

预期响应:

{
  "code": 200,
  "message": "success",
  "data": {
    "token": "eyJhbGc...",
    "userId": 1,
    "username": "admin",
    "name": "平台管理员",
    "role": "admin"
  }
}

4. 测试新 API 端点

使用返回的 token 测试受保护的接口:

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"

数据库配置

数据库连接信息:

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 配置

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: 查找并终止占用进程:

lsof -ti :8080 | xargs kill -9

Q: SDKMAN 命令找不到

A: 需要先加载 SDKMAN 环境:

source "$HOME/.sdkman/bin/sdkman-init.sh"

Q: 编译失败

A: 清理并重新编译:

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 中设置:

logging:
  level:
    com.reading.platform: debug

热重载(开发时)

使用 Spring Boot DevTools 可实现自动重载(需添加依赖)

测试账号

  • 超管: admin / admin123
  • 学校: school1 / 123456
  • 教师: teacher1 / 123456
  • 家长: parent1 / 123456

最后更新: 2026-03-12 - Java后端环境配置完成