zhibo/java-backend/README.md
2025-12-18 14:52:20 +08:00

2.9 KiB
Raw Blame History

直播系统 Java 后端

基于 Spring Boot 3.2 + JPA + H2/MySQL 的直播系统后端服务。

技术栈

  • Java 17
  • Spring Boot 3.2
  • Spring Data JPA
  • H2 Database (开发) / MySQL (生产)
  • Lombok

快速开始

1. 使用 IDEA 打开项目

  1. 打开 IntelliJ IDEA
  2. 选择 File -> Open
  3. 选择 java-backend 文件夹
  4. 等待 Maven 依赖下载完成

2. 运行项目

方式一:直接运行

  • 找到 LivestreamingApplication.java
  • 右键点击 -> Run 'LivestreamingApplication'

方式二Maven 命令

cd java-backend
mvn spring-boot:run

3. 访问服务

API 接口

直播间接口

方法 路径 说明
GET /api/rooms 获取所有直播间
GET /api/rooms/{id} 获取单个直播间
POST /api/rooms 创建直播间
DELETE /api/rooms/{id} 删除直播间

创建直播间请求示例

POST /api/rooms
{
  "title": "我的直播间",
  "streamerName": "主播名称"
}

响应示例

{
  "success": true,
  "data": {
    "id": "uuid",
    "title": "我的直播间",
    "streamerName": "主播名称",
    "streamKey": "uuid",
    "isLive": false,
    "viewerCount": 0,
    "streamUrls": {
      "rtmp": "rtmp://localhost:1935/live/uuid",
      "flv": "http://localhost:8080/live/uuid.flv",
      "hls": "http://localhost:8080/live/uuid/index.m3u8"
    }
  }
}

切换到 MySQL

  1. 安装 MySQL 并创建数据库:
CREATE DATABASE livestream CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  1. 修改 application.yml
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/livestream?useSSL=false&serverTimezone=Asia/Shanghai
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: your_password

项目结构

java-backend/
├── src/main/java/com/example/livestreaming/
│   ├── LivestreamingApplication.java  # 启动类
│   ├── config/                        # 配置类
│   ├── controller/                    # 控制器
│   ├── dto/                           # 数据传输对象
│   ├── entity/                        # 实体类
│   ├── exception/                     # 异常处理
│   ├── repository/                    # 数据访问层
│   └── service/                       # 业务逻辑层
├── src/main/resources/
│   └── application.yml                # 配置文件
└── pom.xml                            # Maven 配置

Android App 配置

确保 Android App 的 API 地址指向此服务:

// build.gradle.kts
buildConfigField("String", "API_BASE_URL_DEVICE", "\"http://你的电脑IP:3001/api/\"")