# yingyue-cloud **Repository Path**: memeafnc/yingyue-cloud ## Basic Information - **Project Name**: yingyue-cloud - **Description**: No description available - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-08 - **Last Updated**: 2025-12-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 音乐云平台 (YingYue Cloud) ## 项目概述 音乐云平台是一个基于微服务架构的音乐流媒体服务,提供音乐播放、歌单管理、歌手信息、用户中心等完整功能。项目采用前后端分离架构,后端使用Spring Boot + Spring Cloud微服务框架,前端使用Vue.js构建现代化的用户界面。 ## 核心功能 ### 前端功能 - 🎵 音乐播放:支持歌曲播放、暂停、跳过、音量控制 - 📋 歌单管理:创建、编辑、删除歌单,收藏歌曲 - 👨🎤 歌手信息:查看歌手详情、热门歌曲 - 👤 用户中心:登录注册、个人信息管理 - 🎧 播放历史:记录用户播放记录 - 🔍 音乐搜索:支持歌曲、歌手、专辑搜索 - 📱 响应式设计:适配各种设备屏幕 ### 后端功能 - 用户服务:用户认证、授权、信息管理 - 歌手服务:歌手信息管理、歌手列表 - 歌曲服务:歌曲信息、播放资源管理 - 歌单服务:歌单创建、编辑、查询 - 交互服务:点赞、评论、收藏功能 - API网关:统一入口、路由转发、负载均衡 - 配置中心:集中配置管理 ## 技术架构 ### 后端技术栈 - **框架**: Spring Boot 2.5.0, Spring Cloud 2020.0.3 - **微服务组件**: Spring Cloud Alibaba 2021.1 - **服务注册与发现**: Nacos - **API网关**: Spring Cloud Gateway - **配置中心**: Nacos Config - **ORM框架**: MyBatis Plus 3.4.3.1 - **数据库**: MySQL 8.0.25 - **构建工具**: Maven ### 前端技术栈 - **框架**: Vue.js 2.6.x - **路由**: Vue Router - **状态管理**: Vuex - **HTTP客户端**: Axios - **构建工具**: Webpack - **UI组件库**: Element UI ## 系统架构图 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 前端应用 (Vue.js) │ └─────────────────┬───────────────────────────────────────────────┘ │ ┌─────────────────▼───────────────────────────────────────────────┐ │ API网关 (Spring Cloud Gateway) │ └─────────────────┬───────────────────────────────────────────────┘ │ ┌─────────────────┼───────────────────────────────────────────────┐ │ │ │ ▼ ▼ ▼ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │用户服务 │ │歌手服务 │ │歌曲服务 │ │歌单服务 │ │交互服务 │ │user-service│ │singer-service│ │song-service│ │playlist-service│ │interaction-service│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ │ │ │ │ ┌──────▼───────────────────────────────────────────────────────────────▼──────┐ │ Nacos服务注册中心 │ └─────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ┌──────▼───────────────▼───────────────▼───────────────▼───────────────▼──────┐ │ 配置中心 (Nacos Config) │ └─────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ┌──────▼───────────────▼───────────────▼───────────────▼───────────────▼──────┐ │ MySQL数据库 │ └─────────────────────────────────────────────────────────────────────────────┘ ``` ## 项目结构 ``` yingyue-cloud/ ├── microservice-parent/ # 微服务父项目 │ ├── pom.xml # 父项目依赖管理 │ ├── api-gateway/ # API网关服务 │ ├── config-center/ # 配置中心服务 │ ├── user-service/ # 用户服务 │ ├── singer-service/ # 歌手服务 │ ├── song-service/ # 歌曲服务 │ ├── playlist-service/ # 歌单服务 │ └── interaction-service/ # 交互服务 ├── music-client/ # 前端应用 │ └── music-client/ # Vue.js前端项目 ├── music-server/ # 原单体后端(已废弃) └── music.sql # 数据库初始化脚本 ``` ## 环境要求 ### 后端环境 - JDK 1.8+ - Maven 3.6+ - MySQL 8.0+ - Nacos 2.0+ ### 前端环境 - Node.js 12.14.1+(推荐使用12.x版本) - npm 6.13.4+ ## 安装与运行 ### 1. 数据库准备 ```bash # 1. 创建数据库 CREATE DATABASE music CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 2. 执行初始化脚本 mysql -u root -p music < music.sql ``` ### 2. Nacos安装与启动 ```bash # 1. 下载Nacos Server(以2.0.3版本为例) wget https://github.com/alibaba/nacos/releases/download/2.0.3/nacos-server-2.0.3.zip # 2. 解压 unzip nacos-server-2.0.3.zip # 3. 启动Nacos(单机模式) cd nacos/bin sh startup.sh -m standalone # Windows系统使用:startup.cmd -m standalone ``` Nacos访问地址:http://localhost:8848/nacos 默认用户名/密码:nacos/nacos ### 3. 后端服务启动 ```bash # 1. 进入微服务父项目 cd microservice-parent # 2. 打包所有微服务 mvn clean package -DskipTests # 3. 启动配置中心 java -jar config-center/target/config-center-0.0.1-SNAPSHOT.jar # 4. 启动API网关 java -jar api-gateway/target/api-gateway-0.0.1-SNAPSHOT.jar # 5. 启动各业务微服务 java -jar user-service/target/user-service-0.0.1-SNAPSHOT.jar java -jar singer-service/target/singer-service-0.0.1-SNAPSHOT.jar java -jar song-service/target/song-service-0.0.1-SNAPSHOT.jar java -jar playlist-service/target/playlist-service-0.0.1-SNAPSHOT.jar java -jar interaction-service/target/interaction-service-0.0.1-SNAPSHOT.jar ``` ### 4. 前端应用启动 ```bash # 1. 进入前端项目目录 cd music-client/music-client # 2. 安装依赖 npm install # 3. 启动开发服务器 npm run dev ``` 前端访问地址:http://localhost:8081 ## 配置说明 ### 数据库配置 在各微服务的配置文件中(nacos配置中心),修改数据库连接信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/music?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver ``` ### Nacos配置 ```yaml spring: cloud: nacos: discovery: server-addr: localhost:8848 config: server-addr: localhost:8848 file-extension: yml ``` ### API网关配置 ```yaml spring: cloud: gateway: routes: - id: user-service uri: lb://user-service predicates: - Path=/api/user/** - id: singer-service uri: lb://singer-service predicates: - Path=/api/singer/** - id: song-service uri: lb://song-service predicates: - Path=/api/song/** - id: playlist-service uri: lb://playlist-service predicates: - Path=/api/playlist/** - id: interaction-service uri: lb://interaction-service predicates: - Path=/api/interaction/** ``` ## API文档 各微服务提供RESTful API接口,接口文档可通过以下方式访问: - Swagger UI: 各服务启动后访问 `http://{服务地址}:{端口}/swagger-ui.html` - API网关统一入口: `http://localhost:8082/api/` ## 开发指南 ### 代码风格 - 后端:遵循Java编码规范,使用Google Checkstyle - 前端:遵循ESLint规范,使用Vue.js最佳实践 ### 分支管理 - `main`: 主分支,稳定版本 - `develop`: 开发分支 - `feature/*`: 新功能分支 - `bugfix/*`: 修复分支 ### 提交规范 ``` ():