建立网站tk,企业网站建设费用怎么记账,做推送好用的网站,怎样在网站做宣传背景#xff1a; 现在大部分音乐软件都是要冲会员才可以无限常听的。对于喜欢听音乐的小伙伴#xff0c;资金又比较紧张#xff0c;是那么的不友好。作为程序员的我#xff0c;也是喜欢听着歌#xff0c;敲着代码。 最近就想做一个音乐播放器的软件#xff0c;在内网中使…背景 现在大部分音乐软件都是要冲会员才可以无限常听的。对于喜欢听音乐的小伙伴资金又比较紧张是那么的不友好。作为程序员的我也是喜欢听着歌敲着代码。 最近就想做一个音乐播放器的软件在内网中使用。
注意 本项目只实现播放音乐和后台管理系统。 不分享任何音乐歌曲资源。
本系统使用的技术和实现逻辑不是特别的难。 特别适合刚学编程的小伙伴学习参考。 如果有小伙伴有兴趣可以订阅此专栏后续会持续更新直到音乐播放器这个软件完成。 我会尽可能详细的以文字的形式分享出来 从0到1 写出来一个音乐播放器项目。
使用到的重点技术 后端框架 Spring Boot 2.7.18 数据库依赖mybatis-plus 3.5.7 文件上传依赖x-file-storage 数据库迁移依赖flyway-core
前端vue Electron可以打包成exe客户端
数据库mysql8.0
因核心分享 的是java编程。后续文章中 基本分享的都是java语言的代码。 对于前端的代码在文章中就不分享了。只会分享一下页面效果。 当然项目完结后我会把前后端项目源码打包好放到最后一篇文章中。
实现需求 管理后台 账号管理、专辑管理、歌手管理、歌曲管理
客户端 首页、歌曲搜索、专辑列表、歌手列表、音乐播放、我喜欢的、个人中心、基础设置
大概核心功能会实现以上功能
后端框架搭建 1. java环境安装 可参考下面2篇博客 java环境 https://blog.csdn.net/Drug_/article/details/120211153 maven安装 https://blog.csdn.net/Drug_/article/details/120693846
2. 编辑器的安装和配置(IDEA编辑器) 参考下面两篇博客 https://blog.csdn.net/Drug_/article/details/119558729 https://blog.csdn.net/Drug_/article/details/119529864
3. mysql8 数据库的安装 我这里是直接安装的windows 的集成工具phpStudy 对于 phpStudy 这个工具 写PHP的程序员肯定不陌生。 为什么要安装这个呢因为他在windows 下 编程开发需要一些软件 他很方便。 你把这个软件安装后 他里面可以安装 mysql redis 等 我们开发需要的软件这样你就不需要一一 再去各大官网上下载安装了 所以我在做java 开发的时候 也会使用别的语言的软件。方便我们的开发 4. mysql 管理工具 安装Navicat 对于这个工具我就不多解释了玩过数据库的小伙伴应该基本上都用过这个软件。自行百度即可。
5. spring boot 框架搭建 打开IDEA编辑器开始创建项目 第一步 第二步 这些 大家自主填写即可。 java版本选 java8 创建即可。 先实现 让我们 springboot 正常启动 第一步 我们来把我们所需要的依赖导入到我们项目里即可。 也就是 修改 我们项目下的 pom.xml文件
内容如下我已经给大家整理好了。
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.jsonl/groupIdartifactIdmusic-java/artifactIdversion0.0.1-SNAPSHOT/versionnamejson-base/namedescriptionjson-base/descriptionpropertiesjava.version1.8/java.versionproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingspring-boot.version2.7.18/spring-boot.version/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdscoperuntime/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency
!-- mybatis 代码生成器--dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.7/version/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-generator/artifactIdversion3.5.7/version/dependencydependencygroupIdorg.apache.velocity/groupIdartifactIdvelocity-engine-core/artifactIdversion2.3/version/dependency
!-- druid mysql连接驱动更换--dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.2.23/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency!-- redis依赖commons-pool 这个依赖一定要添加 --dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactIdversion2.11.1/version/dependencydependencygroupIdorg.apache.httpcomponents/groupIdartifactIdhttpclient/artifactIdversion4.5.13/version/dependencydependencygroupIdcom.auth0/groupIdartifactIdjava-jwt/artifactIdversion3.8.1/version/dependency
!-- 优雅的使用api--dependencygroupIdcom.dtflys.forest/groupIdartifactIdforest-spring-boot-starter/artifactIdversion1.5.36/version/dependencydependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion2.0.49/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-aop/artifactId/dependency!-- Flyway 数据库迁移 依赖 他会根据spring boot版本 默认下载兼容依赖 不需要写版本号 --dependencygroupIdorg.flywaydb/groupIdartifactIdflyway-core/artifactId/dependencydependencygroupIdorg.flywaydb/groupIdartifactIdflyway-mysql/artifactId/dependencydependencygroupIdorg.dromara.x-file-storage/groupIdartifactIdx-file-storage-spring/artifactIdversion2.2.1/version/dependencydependencygroupIdcom.aliyun.oss/groupIdartifactIdaliyun-sdk-oss/artifactIdversion3.16.1/version/dependencydependencygroupIdcom.qcloud/groupIdartifactIdcos_api/artifactIdversion5.6.137/version/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion${spring-boot.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementbuildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.8.1/versionconfigurationsource1.8/sourcetarget1.8/targetencodingUTF-8/encoding/configuration/plugin/plugins/build/project
第二步 增加配置文件信息 这里我没有用 yml 文件 用的是 properties 这种类型的配置文件 内容如下
server.port18023
spring.application.namelink-music
spring.profiles.activedev
#请求限制
spring.servlet.multipart.max-file-size100MB
spring.servlet.multipart.max-request-size500MB
#数据库
spring.datasource.typecom.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver
spring.datasource.urljdbc:mysql://127.0.0.1:3306/link_music?useUnicodetruecharacterEncodingutf8serverTimezoneGMT%2B8
spring.datasource.usernameroot
spring.datasource.passwordroot
# 以下 Druid的配置 虽然编辑器没提示 但是经过测试 是生效的
# Druid 数据源初始化时创建的连接数
spring.datasource.druid.initial-size10
#数据源允许的最大活跃连接数
spring.datasource.druid.max-active100
#数据源维护的最小空闲连接数
spring.datasource.druid.min-idle3
#当没有可用连接时获取连接的最大等待时间
spring.datasource.druid.max-wait5000
#是否在连接池中缓存预编译的语句
spring.datasource.druid.pool-prepared-statementstrue
#每个连接可以缓存的最大预编译语句数
spring.datasource.druid.max-pool-prepared-statement-per-connection-size100
# 配置 AOP 监控的目标模式
#spring.datasource.druid.aop-patternscom.jsonl.*
#不用这个
#mybatis-plus.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl
mybatis-plus.configuration.log-implorg.apache.ibatis.logging.slf4j.Slf4jImpl
#redis
#spring.redis.host127.0.0.1
#spring.redis.port6379
#spring.redis.database32
#spring.redis.password123456
# Redis Lettuce 客户端配置
#spring.redis.lettuce.pool.max-active500
#spring.redis.lettuce.pool.max-wait10
#spring.redis.lettuce.pool.max-idle8
#spring.redis.lettuce.pool.min-idle2
#flyway
#是否启用flyway
spring.flyway.enabledtrue
# 禁止清理数据库表
# clean 操作是 Flyway 的一个功能可以清空数据库中的所有对象比如表、视图、存储过程等
#以便进行全新的数据库迁移。在开发和测试阶段这可能是有用的因为它可以确保每次都从一个干净的数据库状态开始运行。
#但在生产环境中执行 clean 操作可能会导致数据丢失因此通常需要禁用它
spring.flyway.clean-disabledtrue
# 如果数据库不是空表需要设置成 true当迁移数据库存在但没有元数据的表时自动执行基准迁移
#当数据库中不存在迁移历史记录表时Flyway 会自动创建该表并将当前已经存在的数据库对象标记为已迁移状态。
#当数据库中存在迁移历史记录表但版本号低于最新的迁移脚本版本时
#Flyway 也会自动创建一个基线版本从而将现有的数据库对象标记为已迁移状态并开始应用最新的迁移脚本。
#这样做的目的是确保在已有数据库上使用 Flyway 进行迁移时无论数据库是否已经有迁移历史记录
#都能够正确地进行迁移操作。这在初始化应用程序时特别有用因为它允许你在部署应用程序到新环境时
# 自动初始化数据库并应用最新的迁移脚本。
spring.flyway.baseline-on-migratetrue
spring.flyway.encodingUTF-8
# 迁移sql脚本文件存放路径默认db/migration
# 如果配置完这个路径也手动创建了这个目录 启动服务 一直报错 这个目录找不到
# 可在目录里创建一个 .keep的空文本文件以确保该目录在应用程序启动期间被编译并可用以避免错误。
spring.flyway.locationsclasspath:db/migration
# 迁移sql脚本文件名称的前缀默认V 前缀标识默认值 V 表示 Versioned, R 表示 Repeatable, U 表示 Undo
# Flyway 将 SQL 文件分为 Versioned 、Repeatable 和 Undo 三种
# Versioned 用于版本升级, 每个版本有唯一的版本号并只能执行一次.
# Repeatable 可重复执行, 当 Flyway检测到 Repeatable 类型的 SQL 脚本的 checksum 有变动,
# Flyway 就会重新应用该脚本. 它并不用于版本更新, 这类的 migration 总是在 Versioned 执行之后才被执行。
# Undo 用于撤销具有相同版本的版本化迁移带来的影响。但是该回滚过于粗暴过于机械化一般不推荐使用。
# 一般建议使用 Versioned 模式来解决
spring.flyway.sql-migration-prefixV
# 迁移sql脚本文件名称的分隔符默认2个下划线__
spring.flyway.sql-migration-separator__
# 迁移sql脚本文件名称的后缀
spring.flyway.sql-migration-suffixes.sql
# 迁移时是否进行校验默认true
spring.flyway.validate-on-migratetrue
# 可把这个参数设置 为true 是否可以无序执行 他默认是false 严格按照 顺序执行
spring.flyway.out-of-ordertrue
#开始执行基准迁移时对现有的schema的版本打标签默认值为1
#spring.flyway.baseline-version1
#优雅的使用api依赖配置
# 连接池最大连接数
forest.max-connections200
# 连接超时时间单位为毫秒
forest.connect-timeout5000
# 数据读取超时时间单位为毫秒
forest.read-timeout5000
# api依赖里的 关闭所有日志
forest.log-enabledfalse
forest.log-requestfalse
forest.log-response-statusfalse
forest.log-response-contentfalse
第三步创建一个启动类文件 我们启动项目 看看是否能正常启动。如果可以正常启动那我们前期的准备工作就算完成。
好了。今天就分享到这里后续开发会支持更新。。。