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

127 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 直播系统 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 命令
```bash
cd java-backend
mvn spring-boot:run
```
### 3. 访问服务
- API 地址: http://localhost:3001/api
- H2 控制台: http://localhost:3001/h2-console
- JDBC URL: `jdbc:h2:file:./data/livestream`
- 用户名: `sa`
- 密码: (空)
## API 接口
### 直播间接口
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | /api/rooms | 获取所有直播间 |
| GET | /api/rooms/{id} | 获取单个直播间 |
| POST | /api/rooms | 创建直播间 |
| DELETE | /api/rooms/{id} | 删除直播间 |
### 创建直播间请求示例
```json
POST /api/rooms
{
"title": "我的直播间",
"streamerName": "主播名称"
}
```
### 响应示例
```json
{
"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 并创建数据库:
```sql
CREATE DATABASE livestream CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
2. 修改 `application.yml`
```yaml
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 地址指向此服务:
```kotlin
// build.gradle.kts
buildConfigField("String", "API_BASE_URL_DEVICE", "\"http://你的电脑IP:3001/api/\"")
```