版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
相关技术介绍I基于Spring的音乐网站的设计与开发摘要随着人们所能接触的音乐越来越多,人们对音乐的品味也越来越丰富。一方面,用户需要为自己的歌曲组建歌单,来方便自己可以在不同的时间段选择欣赏不同风格的音乐;另一方面,系统要基于用户的兴趣来推荐符合用户喜好的歌曲。因此,为了满足用户的这些需求,实现一个能够自动搜索音乐库并推荐适合用户的歌曲的音乐推荐系统是很有价值的。基于Spring开发的音乐网站,往往需要进行大量的配置,随着运营时间的增加、功能的增多,配置文件越来越繁琐,被维护人员戏称为配置地狱。而SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。使用Springboot框架开发音乐网站将会是更加优越的选择。本系统由前台和后台两部分构成。前台主要功能包括播放音乐、选择歌单、选择歌手、我的音乐、搜索歌曲、评论点赞和编辑个人信息等功能。后台主要功能包括歌手管理、歌曲管理、歌单管理、评论管理、用户管理和系统详情介绍。本系统采用前后端分离的技术架构。同时,系统后台会对用户的基本信息提供展示、分析和管理模块。对歌手以及歌曲会以较为直接的饼状图和柱状图的方式做一定的分析,同时管理员可以上传删除音乐,以及对用户评论的管理模块,以帮助管理员对网站内容有着较为直观的感受。本系统的后端部分使用SpringBoot框架,前端部分使用Vue框架,开发语言是JavaEE和vue2.x,数据库使用MySQL,并通过Navicat进行管理。最后经系统测试结果表明,本系统界面操作性友好,功能基本满足预期的需求。关键词:音乐网站;推荐系统;数据库;SpringBoot;Vue目录28656摘要 I24562Abstract II27918第1章绪论 192191.1研究背景 1172041.2研究现状 1155241.3研究意义 386341.4研究主要内容 3150901.5本文内容结构 48142第2章相关技术介绍 54832.1Springboot框架简介 57962.2SSM框架技术简介 5155412.2.1Spring框架 5320132.2.2SpringMVC框架 6178702.2.3MyBatis框架 768172.3其他技术介绍 8270262.3.1ElementUI 8175182.3.2Axios技术 833262.4Vue框架介绍 9223522.5本章小结 915882第3章音乐网站需求分析 10255373.1系统角色定义 1092413.2系统总体功能结构 10207433.3系统用例分析 12146033.3.1 12190803.3.2用户功能模块 13142443.3.3个人中心模块 16210953.3.4后台管理模块 17221763.4系统非功能性需求分析 1877053.4.1界面需求 18173303.4.2交互性需求 18137013.4.3可扩展性需求 18297313.5本章小结 182106第4章音乐网站详细设计 20306124.1系统框架设计 2052074.2数据库设计 20298364.3章节小结 242980第5章系统实现 25198735.1系统开发环境 2598675.2系统功能模块实现 25248605.2.1用户登录功能实现 25152715.2.2游客注册功能实现 27160615.2.3用户首页推荐歌单功能实现 28105025.2.4歌曲播放模块功能实现 29195815.2.5关键词搜索功能实现 30174935.2.6个人信息管理功能实现 32231705.2.7管理员登录功能实现 34290705.2.8系统信息简介及统计图 35265345.2.9系统管理功能实现 36153215.3本章小结 3690215.4测试目的 37273345.5功能测试 37240625.5.1用户登录注册功能测试 3776915.5.2用户主要功能模块测试 37274495.5.3用户个人信息模块测试 3831685.5.4管理员后台管理模块测试 39155565.6本章小结 399793第6章开发遇到的问题以及解决思路 4059536.1下拉式折叠菜单导航栏 4091026.2数据库数据分页显示需要注意的问题 40270546.3防止不经过登录页面而强行进入其他页面 4031591结论 4227232参考文献 44绪论研究背景音乐作为人类文化的一种普遍表现形式,从心理和生理上影响着人们的休闲、娱乐和健康等生活方式。特别是随着信息技术的飞速发展,大型音乐数据库迅速崛起,为用户提供了丰富的数字音乐资源,却忽视了用户短暂或短期的音乐偏好。现有的紧迫矛盾是超负荷的音乐和个人为某种聆听体验所渴望的歌曲之间的矛盾。因此,随着互联网、大数据和人工智能的快速发展,音乐推荐变得越来越重要,并面临着前所未有的机遇,它是心理学、计算机科学及相关学科的突出多学科应用。作为人类文化的一种普遍表达,音乐影响着个人的生活方式,包括休闲、娱乐和心理及生理上的幸福。音乐目前大致可以分为以下几种类型,如流行音乐、摇滚音乐、爵士乐、蓝调音乐、民谣等。尤其是随着信息技术的飞速发展,大规模的音乐数据库迅速崛起,为用户提供了丰富的数字音乐资源。在数字时代听音乐更容易,因为智能手机上的功能可以离线和在线播放音乐。如今,数字音乐的可用性比前一个时代非常丰富,所以整理所有这些数字音乐非常耗时,并很容易导致信息疲劳。但是目前推荐系统所基于的原理多样丰富,彼此之间效果不一,在不同的使用场景和目标用户面前的推荐匹配程度也有高下之别。要想做到众口能调,需要对用户偏好,使用场景、时间、地点等各种复杂因素进行综合考虑,提取出关键特征,并在歌曲库中选出符合用户喜好的定制音乐,让用户真正获得美的享受。研究现状王辉对中国音乐网站现状的分析,着眼于音乐网站的现状,分析了音乐传播中存在的问题。从受众、媒体、把关人、法制建设等角度进一步探讨了这些问题产生的原因。本文主要解决以下问题:1音乐网站的访问量和关注度比例不平衡。2、虽然网站设计有自己的特点,但内容几乎相同,创新很少,拼贴和强调问题严重。3、可能的违规行为。造成这些问题的原因:1受众太少。2、为了追求商业利益,适应大众审美,高品质音乐逐渐减少。3、减少了通信过程中的控制环节,降低了音乐内容的质量。4、网站法律架构不完善。姚琦和易珂对网络音乐现状的分析侧重于网站音乐的特点和效益,并分析了网站对音乐传播和音乐教育的影响。分析了网站传播与传统媒体传播相比,具有交互性、无时空性、自由选择性和速度性等优势。同时,还分析了教育和文化交流的各个方面。最后,文章提到了网站音乐的实际问题:1在传输过程中,数据容易丢失,音质容易改变。2、高雅艺术的传播越来越不利。3、虽然人们的知识产权保护意识不断增强,但也面临着许多社会和技术问题。在线收听和下载网站音乐对歌唱电影行业也有很大影响。胡斌从多元文化视角对网络音乐进行研究,从类型和特征、存储格式、传播模式、文化特征和社会发展现状等方面分析了网站音乐。1、网站音乐分为即时音乐和非即时音乐。2、本站音乐来源包括国家、集体和个人来源。3、网站音乐具有重复性和完整性的特点。4、网站音乐实现了音乐信息的传输、存储、处理和处理的一体化和自动化。5、与传统传播相比,网站传播更具个人性、民间性和公共性。本文提到的九个网站的社会文化特征如下:1科学与艺术的结合使网站音乐更具现代性。2、增加音乐种类。3、非主流倾向。4、是最完整的“音视频存储器”。时间和空间的概念变得多维。6、音乐创作越来越流行。音乐传播的简化和民主化。8、沟通是互动的。9、网站音乐的受众越来越年轻。这篇文章提出的问题是,虽然对网站音乐的研究仍然相对全面,但它仍处于初级阶段。曾遂的《音乐网络传播与当代音乐观》首先简要描述了网站传播和网站回放,然后分析了公众欣赏和创作音乐观念的变化。文章的三个部分:交流、回放和音乐观看在各个层面都是渐进的。首先,文章分析了网站传播的优势,分析了传播的内容,得出网站传播具有多元化和全球化的特点,并指出互联网用户习惯发生了显著变化。然后分析了大规模和多样化网站复制的特性。最后,从音乐的角度来看,人们的创作观和审美观随着网站发布后传播和复制形式的变化而变化。笔者还对存在的问题进行了深入思考:网站传播混杂,对青少年音乐审美和音乐观念的负面影响不容低估。张然的文章《音乐微博传播的性质与实践》主要分析了微博在现代社会音乐传播中的作用、微博广告的特点以及如何利用微博发布和推广信息。文章提到,微博作为一个交流平台可以有效地推广音乐,公众也可以相互交流。当然,我们也需要查看微博的信息内容。作者鼓励音乐从业者跟上微博时代的步伐,建设一支优秀的外科团队,推动音乐微博的进步和发展。研究意义音乐推荐系统面临的挑战是创建一个系统,该系统能够不断地发现有吸引力的新音乐,了解用户对音乐的偏好。这就需要一个个性化的音乐推荐系统来有效地反映个人喜好。它需要根据不同目标群体的需求进行调整,以实现个性化建议。因此,个性化的音乐推荐系统比一般的推荐系统更加复杂。结合音乐特征识别和音频处理技术,充分考虑用户的需求,提取音乐特征。目前,大多数音乐推荐系统使用均方根误差(RMSE)、平均绝对误差(MAE)或创建顶级推荐列表,通过准确度和召回率来衡量推荐结果。一般来说,音乐推荐系统可以分为三个主要部分,即:用户,项目和用户——项目匹配算法。首先,为了区分用户的音乐品味,我们可以开发基于用户简单信息的用户建模,例如地理区域、年龄、性别、生活方式和兴趣。用户建模将模拟用户档案中的差异,以确定他们对音乐的选择。比如Bu等人利用社交媒体信息来给出更准确的音乐推荐。第二,项目描述由三种元数据组成,即:编辑、文化和声学。它们可以用在各种推荐系统中,例如Bogdanov等人利用体裁元数据来提高听众的满意度。最后,匹配算法应该能够自动向听众推荐个性化的音乐。基于上文的描述,匹配算法主要有三种方法,即协同过滤,基于内容的过滤和混合过滤。研究主要内容本文研究的主要内容为设计并实现一个基于SpringBoot+vue的音乐网站的基本运行功能以及后台管理模块。本音乐网站需要为用户提供贴近偏好的歌单推荐以及基于文化元数据的现有歌曲的分类整理。同时,系统后台会对用户的基本信息提供展示、分析和管理模块。对歌手以及歌曲会以较为直接的饼状图和柱状图的方式做一定的分析,同时管理员可以上传删除音乐,以及对用户评论的管理模块,以帮助管理员对网站内容有着较为直观的感受。本网站的开发平台为JDK1.8+Maven3.6.1,所使用的开发语言为JavaEE+Vue2.X,后台所使用的框架为Springboot2.X,前端框架则是Vue2.9.6。系统采用的数据库为Mysql5.7,对应的管理工具为Navicat。前端代码的开发工具为HBuild,后端代码的开发工具是Idea。推荐算法部分会通过基于文化元数据的混合推荐来实现。本文内容结构本文共分六章。各章内容如下:第一章绪论:本章首先介绍了研究背景,然后介绍了研究分析和意义,包括基于内容的推荐、协同过滤和混合推荐的研究现状。最后,介绍了该网站的内容和意义。第二章系统分析:本章主要介绍音乐网站的功能描述和后台管理系统的功能描述;其次,对系统功能性需求用例进行了使用UML图的方式进行详解,包括:使用者登陆注册模块、首页歌单歌手推荐模块、歌曲播放模块、歌曲操作模块、歌单分类模块、歌手分类模块、我的音乐模块、以及后台管理模块;而后对系统的非功能性的需求上进行了以下论述,包括性能需求、交互性需求、可扩展性需求,以及最后进行本章小结。第三章系统设计:这一章节主要介绍了系统设计,首先是对系统整体的架构设计的描述;接下来,说明了系统流程设计:然后,针对系统功能做了详细的分析与设计;最后,对于每一个数据库表,也做了较为详细地设计与分析,并依次通过表格的模式展现出来。第四章系统实现与界面展示:这一-章节的主要内容是以下几个方面,首先是对音乐网站的开发环境(包括软硬件以及开发工具)进行了说明;然后,将整个网站的功能页面进行分割,并通过贴图的方式进行详细讲解。第五章系统测试:这一章节开头先以表格的形式说明了系统测试的环境,紧接着对系统的功能进行测试,包括登陆注册模块的测试、歌曲播放模块的测试、歌单分类模块的测试、歌手分类模块的测试、我的音乐模块的测试、以及后台管理模块的测试,然后进行了测试结果分析。第六章结论与展望:这一章节首先对全文的书写以及音乐网站的整个成果做了概括性、具体性的总结,并指出了目前本系统还存在的一-些不够完美、不足的地方,并在总结的基础上做出有关系统的进一步改进措施和相关展望。相关技术介绍Springboot框架简介Springboot是一个JavaWeb开发框架,类似于Spring的mvc(模型-视图-控制器)三层架构,简化开发是它比其他JavaWeb框架的好的地方,通过一些规定来代替繁琐的配置,因此通过Springboot框架能够快速设计网页程序,程序员只需要写几行简单的代码就可以开发一个接口。Springboot是在spring的基础上开发的,它不提供spring框架的核心功能和扩展功能特性,但在某种程度上只服务于基于spring框架的新一代应用程序开发程序的快速和敏捷开发。约定大于配置是springboot的实现原则之一。我们只需要记住springboot默认帮助我们实现的任务,我们不需要自己实现它们。开箱即用是springboot实现的另一个原则。由于使用约定的概念比配置更大,因此无需进行配置。因此,我们只需要向POM文件添加相关依赖项,springboot就会自动完成准备工作。开箱即用和配置约定是springboot的两个核心策略:它们是spring框架的扩展和扩展。Springboot还可以无缝集成其他主流框架,更好地服务于软件应用程序开发事业。SSM框架技术简介Spring框架Spring框架是一个由RodJohnson根据同是自己开发的interface21重新设计的框架,它部署方便、体积轻巧,可以和任何工程结合而不改变其本身结构。Spring框架是为了让复杂的企业项目开发流程变得简单一些而创建的,特点是易用、测试简单、松耦合。它的特点是IOC和AOP。IOC是一种思想,就像它的字面意思一样,将控制权限反转交给使用者。在我们进行传统开发的过程中,因为用户的需求是多变的,每一次当用户的需求发生一些变化,我们都需要在源代码里进行修改操作,如果一个程序有千万行代码,那么可以想象修改起来是多么繁琐且危险的。之所以会这样是因为,对象的创建和对象之间的依赖关系在程序中被完全解码,控制权掌握在程序员手中。因此,根据IOC的思想,我们不再需要解码程序中对象的对象依赖性,而是第三个给它所依赖的对象,这就是注入。根据用户的需求,更改需要注入的对象,这样就降低了耦合度,减少了修改的成本。它的实现方式有set方法注入、DI等等。AOP是一种面向切面编程的方式,通过一些技术实现在不改动原来程序代码的基础上添加新代码的模式。AOP是Spring很重要的一个理念,可以用来分离交叉关注点,使不同功能模块之间的耦合度降低,让代码可以重复使用,让开发更加快速。SpringMVC框架SpringMVC是Spring框架的一部分,它是一个使用MVC(模型-视图-控制器)结构的Web框架,底层是用Java开发的。它的特点是:轻量化、入门容易、效率高、到处运行等。图2-2是SpringMVC的原理图。图2-2SpringMVC的执行流程图MyBatis框架MyBatis前身是阿帕奇旗下的一个开源项目,叫做iBatis,是一个基于JAVA,支持自定义SQL、存储过程和高级映射的持久层框架。一般情况下,一个MyBatis映射器由包含一些MyBatis注释的Java接口组成,将POJO与存储过程或者SQL连接在一起。MyBatis同时具有一个映射引擎,这个映射引擎能够用一种声明式的方法把SQL结果映射到对象树。MyBatis还提供了插件MyBatis-Plus,可以自检数据库表并生成可以执行CDUR操作(create,delete,updateandread,即增删改查)的Xml文件,一般称之为逆向工程。图2-3是MyBatis的原理图。图2-3Mybatis原理图其他技术介绍ElementUIElementUI是一个免费开源的Vue组件库,它提供了很多简洁美观的组件,通过一些预先设定的简单属性设置就可以改变大小、颜色,我们可以用它很快的开发一个网页应用。Axios技术Axios是对Ajax进行封装产生的新技术。与以往的Web应用采用的callback模式、客户端过分依赖服务器的响应不一样,Axios的应用模式使用的是异步的promise模式。Vue框架介绍Vue是由尤雨溪设计的开源前端开发框架,主要用来快速创建UI。与其它框架不同的是,Vue被设计为可以自底向上逐层应用,Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。本章小结在这一章里,我首先描述了Springboot框架的相关知识,随后描述了Spring、SpringMVC、Mybatis等知识,点出了这些技术的原理与发展。最后介绍了Axios、ElementUI、Vue等前端技术,为网站的开发打下了坚实的基础。音乐网站需求分析音乐网站需求分析系统角色定义可使用本系统的主要用户分为三个角色:游客,用户,系统管理员。各个角色的详细定义如下。游客:未进行注册并登录的用户,仅能够浏览并使用部分功能,如首页展示歌单,歌单分类,歌手分类,播放歌曲,下载歌曲。用户:指完成了注册并登录的用户,可浏览并使用大部分功能,如首页推荐歌单,歌单分类,歌手分类,播放歌曲,下载歌曲,收藏歌曲,整理歌单,评论点赞,编辑个人信息,修改头像。系统管理员:管理本系统中的全部数据,管理全部用户账号,管理全部歌单数据,管理全部歌手数据,能够查看系统详情页。系统总体功能结构基于Springboot+Vue的音乐网站系统功能模块结构图如图3.1所示。图3.1系统功能结构本音乐网站的应用以及管理端都是在Web网页端运行实现,在功能上,系统主要分为四个模块:用户登录注册模块、用户功能模块、个人中心模块和后台管理模块。音乐网站对这些模块的具体要求和功能如下:1、用户登录模块:本模块的主要功能是实现网站注册用户的在线注册和更改用户登录密码;以及未注册游客的在线注册功能。2、用户功能模块:本模块的主要功能是为用户和未注册游客提供服务。对于尚未注册的游客,可以查看歌单以及歌单详情页面,歌手以及歌手详情页面,播放歌曲,查看歌词,下载歌曲,搜索歌曲等功能;对于网站已注册的用户,除了上述功能外,可以访问我的歌单,收藏其他歌曲,对其他歌单进行评论点赞等功能。3、个人中心模块:此模块允许登录用户更改个人信息、更改头像、查看和编辑我的歌曲列表。4、后台管理模块本模块完成了对用户、歌曲列表信息和歌曲信息的管理,并可以查看系统详细信息。管理员账号可以完成对用户歌单评论的管理,添加或者封禁用户账户,添加或者删除歌手或者歌单内的音乐,对已有歌曲信息进行修改。系统用例分析用户登录注册模块用户登录注册模块的功能用例图如图3.2所示。图3.2用户登录注册模块的功能用例整个模块用例主要描绘了系统用户的当前登录状态。描绘用户登录账号、登出账号、修改密码,以及游客的注册是否成功发回后端的状态。其具体的用例规约如表3.1所示。用例标号UC2-1用例名称登录注册系统用例简述用户登录系统,游客注册系统用例范围用户,游客,系统主要参与者用户,游客前置条件用户发起登录请求,游客发起注册请求。后置条件系统提示成功登录,系统提示已完成注册。基本事件流步骤活动1用户发起登录请求,提交登录信息。游客发起注册请求,提交注册信息。2系统接收前端发送的登录请求,提交数据库获得验证,将验证结果发回前端。系统接收前端的注册请求,提交数据库获得验证,将验证结果发回前端。3用户收到登录结果。游客收到注册结果。扩展事件流2.1系统审核登录信息未通过,提示重新输入登录信息。系统审核注册信息未通过,提示重新输入注册信息。表3.1用户登录注册系统用例规约用户功能模块用户功能模块的功能用例图如图3.3所示。图3.3用户功能模块的功能用例整个用例模块描述了用户主体模块的功能需求,同时也是系统的核心功能需求。图2.3描绘了用户使用主体功能的用例图,主要表现了用户的四大需求:搜索歌曲、歌单,对歌曲的操作,对歌单的操作,对歌手的操作。接下来将详细描述各个用例。搜索歌曲以及歌单是系统的重要功能,该功能的具体流程如用例规约表2.2所示。用例标号UC2-2用例名称搜索歌曲、歌单用例简述用户或者游客搜索歌曲、歌单用例范围用户,游客,系统主要参与者用户,游客前置条件用户或者游客发送搜索请求后置条件系统返回搜索结果基本事件流步骤活动1用户或者游客输入关键词,提交搜索请求。2系统接收前端的搜索请求,后端搜索数据库获得结果,将结果返回前端。3用户获得歌曲、歌单的对应搜索结果。扩展事件流2.1搜索数据库没有找到搜索关键词,返回暂无歌曲内容的结果。表3.2搜索歌曲、歌单系统用例规约操作歌曲功能是系统的核心功能,该功能的具体流程如用例规约表2.3所示。用例标号UC2-3用例名称操作歌曲用例简述用户或者游客对歌曲进行操作用例范围用户,游客,系统主要参与者用户,游客前置条件用户或者游客选择任意歌曲发送播放请求后置条件返回对应的操作结果基本事件流步骤活动1用户或者游客选择任意歌曲点击播放。2用户或者游客选择操作。3系统返回对应的操作结果。扩展事件流2.1选择上一首、下一首:播放歌单内的上一首、下一首歌曲。2.2播放/暂停:暂停当前歌曲的播放进度。2.3拖动进度条:歌曲进度随进度指针跳转。2.4调整音量:增大/缩小歌曲音量。2.5收藏:用户可以将歌曲加入自己歌单。/游客则提示请先登录。2.6下载:将歌曲下载到本地。2.7显示当前播放列表:显示当前歌单内所有歌曲。2.8显示歌词:显示全部歌词,会随歌曲进度轮播。表3.3操作歌曲系统用例规约操作歌单分类功能是系统的关键功能,该功能的具体流程如用例规约表3.4所示。用例标号UC2-4用例名称操作歌单分类用例简述用户或者游客对歌单进行操作用例范围用户,游客,系统主要参与者用户,游客前置条件用户或者游客点击进入任意歌单的详情页后置条件返回对应的操作结果基本事件流步骤活动1用户或者游客点击进入任意歌单。2用户或者游客能看到该歌单简介以及评分,然后选择操作。3系统返回对应的操作结果。表2.4操作歌单分类系统用例规约扩展事件流2.1选择播放歌单内歌曲:对应歌曲开始播放。2.2对歌单进行评分:用户已登录时页面显示该用户具体分数,游客则提示登录。2.3对歌单进行评论:用户已登录时系统页面显示该用户评论,游客则提示登录。续表3.4操作歌单分类系统用例规约操作歌手分类功能是系统的重要功能,该功能的具体流程如用例规约表2.5所示。用例标号UC2-5用例名称操作歌手分类用例简述用户或者游客对歌手分类进行操作用例范围用户,游客,系统主要参与者用户,游客前置条件用户或者游客选择任意歌手进入详情页后置条件返回对应的操作结果基本事件流步骤活动1用户和游客点击进入歌手详情页面。2用户和游客可以查看歌手详细信息。3用户和游客可以选择播放该歌手歌曲。扩展事件流无。表3.5操作歌手分类系统用例规约个人中心模块个人中心模块的功能用例图如图3.4所示。图3.4个人中心模块的功能用例个人中心模块主要面向已注册的用户,为用户提供个人资料的修改以及头像的更换。个人中心模块重点在于可以让用户更换用户名和密码,并可以对自身所处文化地区进行修改。个人中心的管理是系统的重要功能,该功能的具体流程如用例规约表2.6所示。用例标号UC2-6用例名称个人中心管理用例简述用户个人信息做编辑和修改用例范围用户,系统主要参与者用户前置条件用户点击头像进入个人信息中心后置条件系统提示个人信息修改成功基本事件流步骤活动1用户进入个人中心界面。2用户编辑个人资料并提交。3系统提示修改成功,返回首页。扩展事件流2.1用户可以选择上传头像图片。2.2系统获取用户提交信息,修改失败则直接返回首页并提示修改失败。表3.6个人中心管理系统用例规约后台管理模块后台管理模块的功能用例图如图3.5所示。图3.5后台管理模块的功能用例后台管理模块包括系统简介,用户管理,歌单管理,歌手管理等功能。管理员对整个音乐网站有着非常关键的作用,其具体的用例描述如图3.5。对于整个后台管理模块,以歌单管理功能中添加歌单为例,管理员对歌单里的歌曲和评论进行了增删改查的工作,该功能的具体流程如用例规约表3.7所示。用例标号UC2-7用例名称歌单管理用例简述管理员对系统内歌单做添加等操作用例范围管理员,系统主要参与者管理员前置条件管理员进行歌单管理操作后置条件系统更新修改后歌单内容基本事件流步骤活动1管理员使用歌单管理功能,选择添加歌单,输入歌单标题,简介,风格给系统。2系统创建歌单,管理员需要添加歌曲并输入对应歌曲信息。3后台系统显示添加后的歌曲信息。扩展事件流2.1后台系统并未找到对应歌曲,添加失败。表3.7后台管理系统用例规约系统非功能性需求分析本音乐网站面向音乐爱好者整个用户群体,提供较为完整的音乐类的服务,在系统非功能性需求上有着界面美观、交互性良好、可扩展性良好等方面的要求。界面需求一个网站的界面设计往往会给人留下的最直观的第一印象。因此我的整个网站的第一要求就是界面美观整洁,并且在导航栏处要将整个网站主要的功能罗列开来,争取不让用户在操作过程中感到繁琐。另外,在ui设计上采用了扁平化的设计理念,大气亲人,给用户一种平等友好的使用体验。最后,在网页图标的排布上,我尽可能地保有足够的距离,使得整体观感整洁干爽,并且易用方便不拖沓。交互性需求在交互形式上,本网站做到了几个使用细节上的优化。首先,在进入任意歌单后点击播放音乐,右下角的音乐播放栏处有一个歌单管理按钮,当用户打算浏览别的歌单,或者对我的音乐进行整理时,点击歌单管理按钮,随时可以继续浏览刚才播放音乐的歌单。此外,如果当前歌单过长,用户打算从头浏览,页面右下角的回到顶部按钮也能帮助用户节约时间,体验到网页操作的流畅。可扩展性需求网站可拓展性的强弱直接反映一个网站的应变能力。当用户的需求发生变化时,人们对于网页新兴功能的期待不言而喻,所以一个系统需要拥有很强的拓展能力,才能适应时代的变化,及时地对自身功能和产品定位做出调整。只有这样才能获得用户的青睐。本章小结本章主要从音乐网站的功能性需求以及非功能性需求出发,详细地介绍了整个网站在系统设计层面的特点。首先分析了系统框架结构,并由此展开,利用功能结构图和UML用例图对功能需求做了详细的分析。其次,通过功能模块的用例图以及用例规约表,对系统的前端后端分别做了详细的介绍,最后,从非功能性需求出发,简要地分析了系统已经打下的基础和日后所要进一步优化的方向。音乐网站详细设计音乐网站详细设计系统框架设计本音乐网站整体上可分为客户端系统和管理员端系统,主要采用的是前后端分离的springboot+vue框架,数据库主要使用MySQL数据库,并通过MyBatis中间件技术做持久层开发,与Dao层和数据层进行数据交互。前端页面部分负责小部分数据处理,并且还需要调用后端接口以及发送请求回后端;而后端部分主要负责业务逻辑和大部分数据的处理,同时需要将发送的数据返回前端。在上一章需求分析的基础上,本章节将主要从数据库E-R图设计入手,分析数据库方面的设计。在此之前,首先展示本音乐网站的系统框架图,如图4.1所示。图4.1系统架构设计数据库设计本音乐网站主要使用MySQL数据库来存储音乐数据和用户信息。数据库的E-R图如图4.2所示。图4.2系统E-R图用户信息表consumer表如表4.1所示此表包含主ID、用户登录名、用户密码、性别、电话号码、电子邮件号码、出生日期、个人资料、化身链接、位置、用户创建时间、用户更新时间等。表4.1consunmer表字段名类型长度主键允许空值字段描述idint11是否主键,会随着用户数量增多而自动递增usernamevarchar255否用户登录名passwordvarchar255否用户密码sextinyint1否性别(0女1男2不明)phone_numchar15是电话号码emailchar15是电子邮箱号码birthdatetime否出生日期introductionvarchar255是个人简介avatorvarcher255是头像链接locationvarchar255否所在地区create_timedatetime否用户创建时间update_timedatetime否用户更新时间歌曲表song表如表4.2所示本表包括主ID、歌手ID、歌曲名、歌曲简介、歌曲创建时间、歌曲更新时间、歌曲图片、歌词、歌曲链接等内容。表4.2song表字段名类型长度主键允许空值字段描述idint11是否主键,会随着歌曲数量增多而自动递增singer_idint11否外键,歌手idnamevarchar255否歌曲名introductionvarchar255是歌曲简介create_timedatetime否歌曲创建时间update_timedatetime否歌曲更新时间picvarchar255是歌曲图片lyrictext是歌词urlvarchar255否歌曲链接歌手表singer表如表4.3所示本表包括主ID、歌手姓名、歌手性别、歌手头像、出生日期、所在地区、歌手简介等内容。表4.3singer表字段名类型长度主键允许空值字段描述idint11是否主键,会随着歌手数量增多而自动递增namevarchar255否歌手姓名sextinyint1否歌手性别(0女1男2组合3不明)picvarchar255是歌手头像birthdatetime否出生日期locationvarchar255否所在地区introductiontext是歌手简介歌单表song_list表如表4.4所示本表包括主ID、歌单标题歌单图片、歌单简介、歌单风格等内容。表4.4song_list表字段名类型长度主键允许空值字段描述idint11是否主键,会随着歌单数量增多而自动递增titlevarchar255否歌单标题picvarchar255是歌单图片introductiontext是歌单简介stylevarchar255否歌单风格歌曲收藏表collect表如表3.5所示本表包括主ID、用户ID、风格、歌曲id、歌单id、创建时间等内容表4.5collect表字段名类型长度主键允许空值字段描述idint11是否主键,会随着收藏数量增多而自动递增user_idint11否外键,用户idtypetinyint1否风格song_idint11否外键,歌曲idsong_list_idint11否外键,歌单idcreate_timedatetime否创建时间表4.5collect表歌单评论表comment表如表3.6所示本表包括主ID、用户id、风格、歌曲id、歌单id、评论内容、创建时间、评论点赞数等内容。表4.6comment表字段名类型长度主键允许空值字段描述idint11是否主键,会随着评论数量增多而自动递增user_idint11否外键,用户idtypetinyint1否风格song_idint11否外键,歌曲idsong_list_idint11否外键,歌单idcontentvarchar255否评论内容create_timedatetime否创建时间upint否评论点赞数章节小结根据上一章的需求分析,我在这一章节描绘了系统的框架结构图,清晰地表现了音乐网站的客户端、后台管理端以及数据库端之间的联系,并更好地厘清了整体框架下的业务逻辑,对各个功能模块的设计有了初步的思路和实现想法。最后,对于数据库,我基于详细的需求分析和用例图,顺利地将数据库系统的E-R图设计并绘制出来。再根据E-R图,我具体地设计出每一个数据库表结构,并详细地记录在数据库表格里。本章的工作为实现系统的运行奠定了良好的基础。音乐网站功能测试系统实现系统开发环境本推荐网站的客户端,服务端都在本机运行,本机配置以及软件开发平台如表4.1所示。序号名称详细内容1CPUIntel(R)Core(TM)i7-7700HQCPU@2.80GHz2RAM16.0GB3操作系统Windows1064位操作系统,基于x64的处理器4开发平台JDK11+Maven3.6.15数据库MySQL8.06开发语言JavaEE+vue2.X7前端开发工具HbuildX8后端开发工具IntelliJIDEA9数据库管理工具NavicatforMySQL10浏览器MicrosoftEdge表4.1开发配置表系统功能模块实现用户登录功能实现用户进入音乐网站,可以点击登录按钮,如果输入账号密码正确,则登录成功;若数据库不存在该账号信息或者密码错误,则提示登录失败。具体如图4.1,4.2所示。此外,当输入框失去焦点时,会检测输入信息是否符合长度要求并提示消息。登录成功后自动跳转到系统首页。图4.1登录成功图4.1登录失败实现代码:游客注册功能实现游客初次进入网站时,可以点击注册按钮进入注册界面,按照要求输入注册信息。如果符合信息输入规范便可以成功注册。具体如图4.3,图4.4所示。图4.3注册不符合输入规范图4.4游客注册页面实现代码:用户首页推荐歌单功能实现本音乐网站的推荐模块主要采用基于文化元数据的内容推荐算法。选择该算法主要考虑到本系统现有数据量并不大,选择协同过滤算法推荐很有可能会出现数据稀疏化的问题,使推荐效果比较差;而基于内容的推荐算法主要根据音乐本身的特征进行推荐,在数据量不大的情况下依旧可以达到一定的推荐效果,再通过基于文化元数据算法的推荐算法的优化,可以达到相对较好的推荐效果。具体推荐效果如图4.5所示。图4.5首页推荐结果实现代码:歌曲播放模块功能实现用户和游客可以选择歌曲,点击之后开始播放。具体如图4.6,图4.7所示。图4.6播放栏播放歌曲图4.7歌曲歌词轮播页面实现代码:关键词搜索功能实现用户和游客输入想要查询的关键词,前端提交搜索请求给后端进行模糊查找,后端业务逻辑层对关键词进行处理,从数据库中歌曲表、歌手表以及歌单表进行比对,将所有相近结果返回前端,具体功能演示如图4.8,图4.9所示。图4.8歌曲、歌手相关搜索结果页面图4.9歌单相关搜索结果页面实现代码:个人信息管理功能实现登录后,用户可以选择是否进入个人信息管理中心,完成个人数据处理、更改用户名和密码等操作。具体功能如图4.10和4.11所示。图4.10编辑个人资料页面实现代码:图4.11修改头像页面实现代码:管理员登录功能实现管理员可以直接登录音乐网站的后台管理系统,输入正确的管理员账号密码后,可以进入后台管理系统。具体实现如图4.12所示。图4.12管理员登录页面实现代码:原理:使用requestMapping方法返回status,提交方式是post.需要从前端获取账号密码需要用到HttpServleRequest,如果登录成功需要把账号放到session里面去,前后端传输需要用到JSON方法,接下去就是获取前端输入账号密码,判断boolean账号密码是否与管理员账号相同,相同则返回数值1显示登录成功,否则返回数值0登录失败系统信息简介及统计图管理员成功进入系统后,可以查看系统信息以及统计图,具体如图4.13所示。图4.13系统简介页面实现代码:系统管理功能实现管理员除了可以查看系统内的信息以外,也可以对系统内的数据进行管理。以歌手管理为例,具体如图4.14所示。图4.14歌手管理页面实现代码:本章小结本章首先从硬件和软件两个角度,分别简要介绍了本音乐网站的开发环境;其次从客户端和管理员端两个方面,以系统实际运行截图的方式,结合文字说明,详略得当地展示本网站的功能模块。根据所展示的众多系统界面,说明了本系统功能实现的完备,为下一章的测试做好了充分的准备。
音乐网站功能测试测试目的本音乐网站所实现功能较多,部分功能业务逻辑较为复杂,因此为了保证整个网站的可用性和稳定性,需要测试人员有目的地进行测试,以保证网站可以正常使用,并满足用户的需求。下面,针对系统较为常用的功能模块进行测试,以便于日后修改和完善工作的进行。功能测试用户登录注册功能测试测试内容测试步骤预期结果实际结果结论用户登录点击登录按钮输入正确的用户名和密码提交登录请求提示登录成功,跳转到网站首页与预期相符通过点击登录按钮输入错误的用户名和密码提交登录请求提示用户名或密码错误,请重新输入与预期相符通过用户注册点击注册按钮填写正确的注册信息提交注册请求提示注册成功,跳转到网站首页与预期相符通过点击注册按钮不按照填写规范进行填写无法提交注册请求与预期相符通过表5.1用户登录注册测试表用户主要功能模块测试测试内容测试步骤预期结果实际结果结论歌曲播放点击任意歌曲点击暂停按钮后再次点击任意拖动歌曲进度条歌曲在操作过程中均可流畅播放与预期相符通过歌曲切换点击播放歌单内任意一首歌点击上一首、下一首按钮歌曲可以切换与预期相符通过表5.2用户功能模块测试表测试内容测试步骤预期结果实际结果结论歌曲收藏点击音乐播放条上的收藏按钮1.如果用户已经登录,歌曲可以加入我的音乐2.如果用户尚未登录,系统提示请先登录与预期相符通过歌曲下载点击歌曲播放条上的下载按钮歌曲开始下载与预期相符通过查看歌词点击歌曲图片显示该歌曲的全部歌词,并会随进度条滚动歌词与预期相符通过搜索音乐输入目标关键字提交搜索请求1.会返回歌曲名或者歌手姓名中包含关键字的所有歌曲2.会返回歌单名中包含关键字的所有歌单与预期相符通过歌单评分点击进入任意歌单给该歌单打分显示该用户的评分与预期相符通过歌单评价点击进入任意歌单在评论区输入评价内容点击提交按钮1.如果用户已经登录,显示该用户的评论2.如果用户尚未登录,提示请先登录与预期相符通过续表5.2用户功能模块测试表用户个人信息模块测试测试内容测试步骤预期结果实际结果结论编辑个人资料点击进入编辑个人资料界面对个人资料进行增删改操作点击保存按钮个人资料得到修改与预期相符通过上传头像点击修改头像按钮选择上传图片点击提交按钮头像图片被修改与预期相符通过表5.3用户个人信息模块测试表管理员后台管理模块测试测试内容测试步骤预期结果实际结果结论用户管理点击选择用户管理按钮选择任意用户,点击编辑按钮对该用户进行修改操作,并提交修改用户个人信息被修改与预期相符通过歌手管理点击选择歌手管理按钮选择任意歌手,点击编辑按钮对歌手进行信息修改,添加或删除歌曲,并提交修改歌手对应信息被修改与预期相符通过歌单管理点击选择歌单管理按钮选择任意歌单,点击编辑按钮对歌单名等信息进行修改,添加或删除歌单内歌曲,修改歌单评分,删除歌单评论,并提交修改歌单信息以及歌单内容被修改与预期相符通过表5.4管理员后台管理模块测试本章小结本章主要对音乐网站的诸多功能模块进行了功能性测试,例如登录注册模块,歌曲搜索播放模块,个人信息管理模块,后台信息管理模块。基本所有模块都符合预期测试结果,并对测试内容以及步骤做了详细地阐述,总体表述清晰,测试直观明了,基本达到了本网站预期的测试目标。开发遇到的问题以及解决思路开发遇到的问题以及解决思路下拉式折叠菜单导航栏编写网页时,创建带有超链接的导航栏并不困难。但是,创建下拉菜单导航栏并不容易。在下面的示例中,单击“下载实习相关文档”菜单展开下面的子菜单,然后再次单击以缩小下面的子菜单,可以起到切换的效果。初学者很难使用传统的HTML、CSS和JavaScript创建这种类型的菜单。然而,使用jQuery实现此功能非常简单。开发环境,选用的是Eclipse。在网站项目的“We-bContent”下,新建文件夹“jslib”,然后将“jquery-3.4.1.js”复制到该文件夹下。这样jsp程序就可以访问jquery的包了。在网页的<head></head>位置添加jquery代码,有两个程序文件,一个是zhuye01JSP,另一个是zhuye01CSS。为了让初学者更容易掌握web设计,这两个文件存储在同一文件夹中。此处指定的代码可以直接执行。实现下拉折叠式菜单功能。有两个程序文件,一个是zhuye01JSP,另一个是zhuye01CSS。为了让初学者更容易掌握web设计,这两个文件存储在同一文件夹中。此处指定的代码可以直接执行。数据库数据分页显示需要注意的问题数据库分页显示的Statement创建时需要注意,如果用缺省设置创建时,ResultSet是一种只能访问一次(one-time-through)、只能向前访问(forward-only)和只读的对象。您只能访问数据一次,当然不可能实现分页效果。一般查询数据都有两个页面,一个页面是输入查询条件的,单击“查询”按钮将会跳转到另一个页面,这个页面就是处理数据库查询和分页的页面,这两个页面一定要在同一个文件夹下,否则会出现迭代错误而导致分页失败。防止不经过登录页面而强行进入其他页面用户权限分为1-用户,2-管理员,经过合法登录之后会分别定位到zhuye01.jsp-用户主页,zhuye02.jsp-管理员主页,有的用户登录之后,例如权限为1的用户,通过猜测目录结构,我想进入zhuye02,而不必通过登录页面JSP非法显示数据和修改数据库数据。假设该网站请求的域名是石溪天府。Edu,在浏览器的地址栏中键入主页被分配给DengluJSP。权限为1的用户被移动到zhuye01JSP,并显示地址栏/zhuye01.jsp具有权限2的用户将移动到zhuye02JSP,并显示地址栏/zhuye02.jsp此时,未分类的用户将猜测目录结构,并在不通过登录页面的情况下强行进入其他页面。例如,对于权限为1的学生用户,直接在地址栏中输入/zhuye02.jsp,将会打开管理员主页。这样,对网站的威胁非常大,可能导致巨大的损失。那么,该如何解决这个问题呢?可以使用web.xml配置一个Filter来完成。在Web项目中,将需要经过登录之后才能访问的页面和servlet放在一个文件夹中,该文件夹命名为anquan。设置一个Filter,对anquan文件夹下的所有访问进行过滤。判断是否登录,还是要通过session来判断。在前面的denglu.jsp对应的处理页面,已经通过语句session.setAttribute("userid",userid)将用户账号放在userid里面了,如果用户已经登录,则userid不为空。用户退出,一定要将userid置为null。这样,用户未登录和退出后,userid都为null。致谢结论在这个信息爆炸的时代,一个好的音乐推荐系统是用户和音乐内容之间的连接,它可以帮助用户找到他们感兴趣的音乐,而无需明确说明需求。如今,国内外许多互联网公司都使用推荐系统,精准地为潜在的目标客户推送着他们可能感兴趣的内容。这一方面为社会带来了商业领域的巨大繁荣,另一方面也让用户享受到了他们感到满意的服务,解决了很多不易被人关注的需求痛点。本文对音乐网站的研究现状,需求分析,具体实现以及数据库的设计等方面进行了研究和实践。以提供良好体验的系统为核心,比较了现行主流的音乐网站,以JavaEE+vue2.x为基础实现了本系统的前后端,包括了用户登录注册,修改个人信息,查看音乐详细信息,歌曲、歌单搜索以及推荐歌单等一系列的功能,致力于为用户提供良好的音乐获取以及欣赏功能,帮助音乐爱好者在广袤的音乐海洋里发现属于自己的旋律。本网站的开发使用到了许多当前主流的技术,Springboot作为成熟的Web开发框架帮助我迅速上手了后端系统的架构。Mybatis同样作为比较主流的持久层中间件,为我对数据库的请求和访问提供了很高效的解决方案。Vue将前端网页本来较为复杂的整体设计拆解为一个个组件的开发,极大地方便了我对多个功能模块的设计与实现,并且也使得页面美观清爽。最后总结一下本音乐网站整体开发的流程。在我正式开发前,首先查阅了国内外许多音乐推荐系统相关的论文,了解了当前比较主流的音乐推荐技术,并且分析了现有条件下能够实现的推荐技术,以备于接下来的开发。其次,了解并学习了当前最为热门的前后端分离框架——Springboot+vue,这为我开发系统奠定了良好的基础。接下来对本网站做了需求分析,制作了系统框架图以及一系列功能模块的用例图,结合着用例分析对系统的设计与实现有了初步的想法。紧接着便是设计数据库系统的E-R图,根据E-R图进一步完成了数据库表的设计。最后便是在之前的基础上,一步一步地完成了网站的各个功能模块的搭建,编写测试用例并完成了对网站主要功能模块的测试,检查网站是否符合设计要求。本网站的大部分功能已经基本实现,但由于开发时间较为紧张,尚有一些地方可以继续改进。具体如下:1.在音乐的数据量上,可以采用爬虫技术获取更丰富的音乐数据,以提高推荐算法的准确度。2.在系统的数据库设计上,可以引入ElasticSearch为数据库建立更快捷的索引,以提高搜索时的查询效率。3.在系统的高并发上,没有考虑过用户量过多时服务器可能会负载过大,网站可能会因此出现卡顿的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度隔墙板市场推广与销售合同
- 2024年企业合规管理与风险评估服务合同
- 2024人工智能在金融服务中的应用合同
- 2024年度品牌授权合同:知名品牌授权使用合同
- 句子改写课件教学课件
- 2024年度云计算服务带宽扩展及维护合同
- 2024年度吊车保险合同:保险责任与赔偿限额
- 2024中小企业贷款及还款细节合同
- 2024年应急响应:消防设施建设与维护合同
- 2024年工程承包商发包合同
- 张晓风散文自选集
- 胆囊息肉的护理查房
- 新课标下小学生运算能力的培养研究的开题报告
- 餐饮行业初期投资预算分析
- 辽宁省重点高中沈阳市郊联体2023-2024学年高三上学期期中生物试题(解析版)
- 退费申请表模板(直接打印)
- 剪映:手机短视频制作-配套课件
- 西气东输二线25标段山岭隧道内管道安装技术
- 防校园欺凌-课件(共28张PPT)
- 第6章 智能网联汽车测评技术
- 单向板结构设计
评论
0/150
提交评论