个人音乐播放网站项目(SpringBoot+Linux部署上线)

在做完第一个博客系统项目以后,接着做下一个项目:音乐播放网站项目,此项目应用的技术栈和第一个项目是差不多的,即算是学完SSM等知识以后的两个入门级Java开发项目吧。

此项目包含的核心功能有:

一、登录、注册、退出功能。
二、添加音乐、查看音乐列表。
三、收藏音乐、查看收藏的音乐。
四、删除音乐、批量删除音乐。
五、在为了保证用户账户安全情况下,进行用户密码登陆后MD5加盐处理。
六、以及统一数据的返回、统一异常处理、拦截器拦截接口、网页、文件包。

此项目由个人独立开发,包括前端、后端、数据库表的设计以及各种功能的设计。
 运用技术栈:
 前端:HTML、CSS、JavaScript、JQuery、Ajax
 后端:Java、SpringBoot、MyBatis
 数据库:MySQL
 部署服务器:Linux
 部署服务器所用工具:Xshell、Xftp  后端接口设计测试工具:Postman
访问网站:http://110.41.154.247:8888/login.html
开源代码:

下面是完成界面展示
登录界面:


注册界面:


音乐播放列表页(首页)

音乐播放:


收藏页面:


上传音乐页面:

接下来介绍后端设计:

在设计后端架构上,主要分了这几层:

tools层:主要为了放一些拦截器类、统一数据返回类、统一异常处理、Session常量设置、密码MD5加盐处理。
model层:主要放用户类:userinfo、文章类:articleinfo
controller层:主要放相关前端访问的接口方法,包括UserController、MusicController、LoveMusicControllr
mapper层:主要放用来连接MySQL的一些方法,与Mapper.xml与之对应
 


逐个介绍每个层的业务代码:
tools层:

1、拦截器设置:

先自定义需要拦截的接口以及文件类(需要加上注解Configuration):

随后将自定义拦截器类加入统一拦截器类,需要设置若拦截成功,则设置http状态码为401并返回:

2. 统一数据返回,自定义Result类,将失败、成功的结果进行封装统一返回:


随后加入统一数据返回类进行返回:


3.设置密码MD5 以及加盐处理,里面设置两个方法,第一个方法是将密码进行UUID加盐、然后调用DigestUtils类进行MD5加密且去除“ - ”字符后再拼接盐值得到一个64位字符串 ,随后设置decrypt进行密码校验,从数据库拿到finalpassword密码,与用户登陆时输入的密码进行比对,具体算法为:将finalpassword取前32位(MD5处理会生成32位字符串,UUID加盐也会生成32位字符串),然后结合用户传入的password进行拼接然后进行MD5处理,比对处理结果和finalword是否一致,如果一致则密码正确,否则密码错误!

model层:

这层主要是和数据库对接的用户数据表,一张是user表、一张是music表,而收藏音乐的表不需要写,因为返回的变量不会是收藏音乐的整个表,因此不需要。

user:


music:


controller层:

该层有三个类:分别是UserController、MusicController、LoveMusicController
UserController主要处理用户注册、登录、退出的功能:

登录功能:


注册功能:


退出功能:


MusicController主要是

插入音乐、播放音乐、查找音乐、删除音乐、批量删除音乐功能(代码太长,实现逻辑都是一样的并不难,相关代码可访问上面开源代码网站)(播放音乐运用到了一个开源播放器网站,通过将将访问后端服务器/music/get接口的url地址保存到数据库,后续返回这个url给前端传入开源网站即让此网站访问我的音乐播放网站的服务器接口然后就可以播放了)
LoveMusicController主要是:

收藏音乐、查找音乐、删除收藏音乐功能(代码太长,实现逻辑都是一样的并不难,相关代码可访问上面开源代码网站)。

前端与后端交互过程(核心):

前端主要的作用是将页面渲染出来,得到一个个提供给用户看的界面,主要使用JavaScript来进行操作,利用JQuery的Ajax进行post/get 的http请求 发送给后端,后端通过controller层的接口接受前端传入的相关数据,然后处理请求,再将数据传送给Service层,然后给mapper层,通过Mybatis与数据库进行连接,通过Sql语句将数据传送给数据库,最后数据库可以将结果以相同的方式从数据库到mapper再到service再到controller 再通过统一数据返回传送给前端页面,前端页面通过success / error 的function进行接收最后进行渲染到前端。
下图就是一个前端JS里面的ajax请求的例子,前端通过发送post的http请求,通过url路径为“/user/login” 给后端接口 传输数据为data,随后后端处理完以后通过success进行结果的接收,返回给前端的result结果,最后渲染。

部署上线:
这里需要修改项目几个东西:

1、需要修改连接数据库的jdbc语句,将127.0.01改成服务器的ip地址
2、需要将连接数据库的用户名和密码改成服务器上的,也就是云端服务器linux里面数据库的用户名和密码
3、需要将音乐播放文件(.MP3文件)保存路径修改成服务器里面的目录,将用户上传的音乐文件保存在服务器 例如 :  D:xxx/xx改成 linux里面的目录:/root/xxx 

部署需要用到云服务器,这里作者在华为云租了一个云端服务器,然后通过开放8888、3306端口,然后通过Xshell 、XFTP 进行部署,这里将maven打包好的jar后缀java文件通过xftp拖拽到远程云端服务器的目录下。
在这之前,需要在linux服务器里面先下载相关环境:JDK1.8、MariaDB,随后将sql文件通过Xftp传到linux目录下,通过source / root / xxx.sql进行执行,得到两个数据表,随后通过nohup java -jar xxx.jar &将项目部署在后台执行,遂可以通过网址访问制作好的项目

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/567434.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

知了汇智携手西科大举办“知了杯”网络安全趣味赛,共筑网络空间安全防线

为积极响应国家网络空间安全人才战略,加快攻防兼备网络创新人才培养步伐,实现以赛促学、以赛促教、以赛促用,推动网络空间安全人才培养和产学研用生态发展,成都知了汇智科技有限公司(以下简称:知了汇智&…

随笔Ubuntu上的的一些使用

Ubuntu简易使用 常用指令 cdlsmkdirrf -rm 路径 换源 备份镜像 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak编辑文件设置 sudo gedit /etc/apt/sources.list清华源 # 阿里源 deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe mul…

数据库轻松切换:解读Spring中的AbstractRoutingDataSource

欢迎来到我的博客,代码的世界里,每一行都是一个故事 数据库轻松切换:解读Spring中的AbstractRoutingDataSource 前言AbstractRoutingDataSource介绍作用和优势:作用:优势: 使用 AbstractRoutingDataSource …

鬼手剪辑如何导入剪映草稿箱?含工程文件

鬼手剪辑导入剪映功能介绍 功能概述 鬼手剪辑导入剪映功能可以让您将鬼手剪辑翻译、克隆和一键解说等作品的工程文件导入到剪映草稿,以便通过剪映进行精细化调整。 推荐使用场景 视频二创 视频语音翻译 短剧解说等作品的微调 导出的工程文件包含以下元素 视频…

windows10小皮安装不同版本composer,实现自由切换使用

1、使用phpstudy小皮面板安装composer1.8.5和composer2.5.8两个版本; 2、打开刚才安装的composer安装目录:D:\phpstudy_pro\Extensions 3、打开composer1.8.5版本,修改composer.bat名称为composer1.8.5.bat: 4、打开composer2.5.8…

uniapp制作多选下拉框和富文本(短信页面)

实例 多选下拉框实现 http://t.csdnimg.cn/TNmcF 富文本实现 http://t.csdnimg.cn/Ei1iV

图解《图搜索算法》及代码实现

关注我,持续分享逻辑思维&管理思维; 可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导; 有意找工作的同学,请参考博主的原创:《面试官心得--面试前应该如何准备》,《面试官心得--面试时如何进行自…

STM32F4使用FPU/DSP核心启用与测试

STEP1、下载DSP库 具体链接如下: https://www.st.com/en/embedded-software/stsw-stm32065.html?dl9w6sdOSAKySFxBhN764Stg%3D%3D%2CIS1vzyA84KLAefK%2B0DawUl0FScREpiT6AdC3qFjIMJnCIgXIwr82G2XUFo6w43Wp5L5CUyrX3vZAoaHRE3nsTmRsArV3hnQOEgX73SKt8ss1vGrLlfXT24j…

indexDB 大图缓存

背景 最近在项目中遇到了一个问题:由于大屏背景图加载速度过慢,导致页面黑屏时间过长,影响了用户的体验。从下图可以看出加载耗时将近一分钟 IndexDB 主要的想法就是利用indexDB去做缓存,优化加载速度;在这之前&am…

VNISEdit 制作安装包

1. 环境依赖 1.1. NSIS 下载 下载地址:https://nsis.sourceforge.io/Download 1.2. VNISEdit 下载 下载地址1:https://sourceforge.net/projects/hmne/ 下载 exe 安装。 下载地址2:https://hmne.sourceforge.net/ 可以下载 exe 安装。也…

基础算法---前缀和

文章目录 基本思想1.前缀和2.子矩阵的和3.长度最小的子数组4,除自身以外数组的乘积总结 基本思想 前缀和数组就是一个数组的前i项和 前缀和的用处:前缀和数组求出来之后我们就可以就可以求数组中的某个特定区间的和 就比如说求l到R的和,我…

linux休眠唤醒流程,及示例分析

休眠流程 应用层通过echo mem > /sys/power/state写入休眠状态,给一张大概流程图 这个操作对应在kernel/power/main.c的state这个attr的store操作 static ssize_t state_store(struct kobject *kobj, struct kobj_attribute *attr,const char *buf, size_t n) …

网站想实现HTTPS访问需要有哪些步骤?

网站要实现HTTPS访问,以确保数据传输安全和提升用户信任度,主要需按以下步骤操作: 1. 购买或申请SSL证书: - 根据网站类型和需求,选择合适的SSL证书:DV(域名验证)、OV(组…

Maxwell安装使用和简单案例

一、解压 cd /opt/software/ ​ tar -zxvf maxwell-1.29.2.tar.gz -C /opt/module/ ​ cd /opt/module/ 二、MySQL 环境准备 1、修改 mysql 的配置文件 修改 mysql 的配置文件,开启 MySQL Binlog 设置 vi /etc/my.cnf 添加以下内容 server_id1 log-binmysql-…

冈萨雷斯数字图像处理资源(课后习题答案+代码+图片)

冈萨雷斯数字图像处理相关资源整理,资源全部来源互联网,方便大家下载 冈萨雷斯数字图像处理相关资源整理 课后习题 冈萨雷斯数字图像处理源代码

etcd campaign

1. 引言 本文主要讲解使用etcd进行选举的流程,以及对应的缺陷和使用场景 2. etcd选举流程 流程如以代码所示,流程为: clientv3.New 创建client与etcd server建立连接 concurrency.NewSession 创建选举的session,一般会配置ses…

微信小程序一到六章总结

第一章总结 认识微信小程序 小程序简介 微信(WeChat) 是腾讯公司于2011年1月21 日推出的一款为智能终端提供即时通信服务的应用程序。 小程序、订阅号、服务号、企业微信(企业号)属于微信公众平台的四大生态体系,它们面向不同的用户群体&…

Harmony OS应用开发性能优化全面指南

优化应用性能对于应用开发至关重要。通过高性能编程、减少丢帧卡顿、提升应用启动和响应速度,可以有效提升用户体验。本文将介绍一些优化应用性能的方法,以及常用的性能调优工具。 ArkTS高性能编程 为了提升代码执行速度,进而提升应用整体性…

若依如何去掉“正在加载系统资源,请耐心等待”

最近有网友反馈这个加载动画很丑,问我如何去掉: 首先找到前端页面的index.html文件,去掉或注释掉如下代码:

使用Gitee进行社交登录的流程

使用Gitee进行社交登录 创建Gitee第三方应用流程: 鼠标移动到个人头像上,点击账号设置 点击账号设置,选择左边目录下数据管理的第三方应用 然后选择创建应用 根据要求填写 填写好了上面的要求之后,点击创建应用,这样&…