zhibo/java-backend/README.md

127 lines
2.9 KiB
Markdown
Raw Normal View History

2025-12-18 14:52:20 +08:00
# 直播系统 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/\"")
```