基于springboot+vue的新闻推荐系统
摘要
随着信息互联网购物的飞速发展,国内放开了自媒体的政策,一般企业都开始开发属于自己内容分发平台的网站。本文介绍了新闻推荐系统的开发全过程。通过分析企业对于新闻推荐系统的需求,创建了一个计算机管理新闻推荐系统的方案。文章介绍了新闻推荐系统的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计和数据库设计。
本新闻推荐系统有管理员和用户两个角色。管理员功能有个人中心,用户管理,排行榜管理,新闻管理,我的收藏管理,系统管理等。用户功能可以在首页查看新闻排行榜,新闻信息,并可以注册登录,收藏新闻,对新闻评论。用户注册登录,评论新闻,收藏新闻,查看新闻,搜索新闻。因而具有一定的实用性。
本站是一个B/S模式系统,采用Spring Boot框架作为开发技术,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得新闻推荐系统管理工作系统化、规范化。
关键词:新闻推荐系统;Spring Boot框架;MYSQL数据库
Abstract
With the rapid development of information Internet shopping, China has liberalized the self-media policy, and most companies have begun to develop websites that belong to their own content distribution platforms. This article introduces the whole process of the development of news recommendation system. By analyzing the enterprise's demand for news recommendation system, a program of computer management news recommendation system was created. The article introduces the system analysis part of the news recommendation system, including feasibility analysis, etc. The system design part mainly introduces the system function design and database design.
This news recommendation system has two roles: administrator and user. Administrator functions include personal center, user management, ranking management, news management, my collection management, system management, etc. The user function can view news rankings and news information on the home page, and can register and log in, collect news, and comment on news. User registration and login, comment news, bookmark news, view news, search news. So it has a certain practicability.
This site is a B/S model system, using Spring Boot framework as the development technology, MYSQL database design and development, fully guarantee the stability of the system. The system has the characteristics of clear interface, simple operation and complete functions, which makes the management of the news recommendation system systematized and standardized.
Keywords:News recommendation system; Spring Boot framework; MYSQL database
目录
1系统概述
2相关技术
3系统分析
3.1可行性分析
通过对本新闻推荐系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。
3.1.1技术可行性
本新闻推荐系统采用JAVA作为开发语言,Spring Boot框架,是基于WEB平台的B/S架构系统。
(1)Java提供了稳定的性能、优秀的升级性、更快速的开发、更简便的管理、全新的语言以及服务。整个系统帮用户做了大部分不重要的琐碎的工作。
(2)基于B/S模式的系统的开发已发展日趋成熟。
(3)众所周知,Java是面向对象的开发语言。程序开发员可以在Eclipse平台上面方便的使用一些已知的解决方案。
因此,新闻推荐系统在开发技术上具有很高可行性,且开发人员掌握了一定的开发技术,所以此系统的开发技术具有可行性。
3.1.2经济可行性
本新闻推荐系统采用的软件都是开源的,这样能够削减很多的精力和资源,降低开发成本。同时对计算机的配置要求也极低,即使是淘汰下来的计算机也能够满足需要,因此,本系统在经济上是完全具有可行性的,所以在经济上是十分可行的。
3.1.3操作可行性
本新闻推荐系统的界面简单易操作,用户只要平时有在用过电脑,都能进行访问和操作。本系统具有易操作、易管理、交互性好的特点,在操作上是非常简单的,因此在操作上具有很高的可行性。
综上所述,此系统开发目标已明确,在技术、经济和操作方面都具有很高的可行性,并且投入少、功能完善、管理方便,因此系统的开发是完全可行的。
3.2系统性能分析
3.2.1 系统安全性
此新闻推荐系统要严格控制管理权限,具体要求如下:
(1)要想对新闻推荐系统进行管理,首先要依靠用户名和密码在系统中登陆,无权限的用户不可以通过任何方式登录系统和对系统的任何信息和数据进行查看,这样可以保证系统的安全可靠性和准确性。
(2)在具体实现中对不同的权限进行设定,不同权限的用户在系统中登陆后,不可以越级操作。
3.2.2 数据完整性
(1)所有记录信息要保持全面,信息记录内容不可以是空。
(2)各种数据间相互联系要保持正确。
(3)相同数据在不同记录中要保持一致。
3.3系统界面分析
目前,界面设计已经成为对软件质量进行评价的一条关键指标,一个好的用户界面可以使用户使用系统的信心和兴趣增加,从而使工作效率提高,JSP技术是将JAVA语言作为脚本语言的,JSP网页给整个服务器端的JAVA库单元提供了一个接口用来服务HTTP的应用程序。创建动态页面比较方便。客户界面是指软件系统与用户交互的接口,往往涵盖输出、输入、人机对话的界面格式等。
1.输出设计
输出是由电脑对输入的基本信息进行解决,生成高质量的有效信息,并使之具有一定的格式,提供给管理者使用,这是输出设计的主要责任和目标。
系统开发的过程与实施过程相反,并不是从输入设计到输出设计,而是从输出设计到输入设计。这是由于输出表格与使用者直接相联系,设计的目的应当是确保使用者可以很方便的使用输出表格,并且可以将各部门的有用信息及时的反映出来。输出设计的准绳是既要整体琢磨不同管理层的所有需要,又要简洁,不要提供给用户不需要的信息。
2.输入设计
输入数据的收集和录入是比较麻烦的,需要非常多的人力和一定设备,而且经常出错。一旦输入系统的数据不正确,那么处理后的输出就会扩大这些错误,因此输入的数据的准确性对整个系统的性能起着决定性意义。
输入设计有以下几点原则:
1)输入量应尽量保持在能够满足处理要求的最低限度。输入量越少,错误率就会越少,数据的准备时间也越少。
2)应尽可能的使输入的准备以及输入的过程进行时比较方便,这样使错误的发生率降低。
3)应尽量早检查输入数据(尽量接近原数据发生点),以便使错误更正比较及时。
4)输入数据尽早地记录成其处理所需的形式,以防止数据由一种介质转移到另一种介质时需要转录而可能发生的错误。
3.4系统流程和逻辑
图3-3登录流程图
图3-4修改密码流程图
4系统概要设计
4.1概述
本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示:
图4-1系统工作原理图
4.2系统结构
本系统是基于B/S架构的网站系统,设计的管理员功能结构图如下图所示:
图4-2管理员功能结构图
本系统是基于B/S架构的网站系统,设计的用户功能结构图如下图所示:
图4-3 用户功能结构图
4.3.数据库设计
4.3.1数据库实体
概念设计的目标是设计出反映某个组织部门信息需求的数据库系统概念模式,数据库系统的概念模式独立于数据库系统的逻辑结构、独立于数据库管理系统(DBMS)、独立于计算机系统。
概念模式的设计方法是在需求分析的基础上,用概念数据模型(例如E-R模型)表示数据及数据之间的相互联系,设计出反映用户信息需求和处理需求的数据库系统概念模式。概念设计的目标是准确描述应用领域的信息模式,支持用户的各种应用,这样既容易转换为数据库系统逻辑模式,又容易为用户理解。数据库系统概念模式是面向现实世界的数据模型,不能直接用于数据库系统的实现。在此阶段,用户可以参与和评价数据库系统的设计,从而有利于保证数据库系统的设计与用户的需求相吻合。在概念模式的设计中,E-R模型法是最常见的设计方法。本系统的E-R图如下图所示:
图4.12 新闻信息实体属性图
(2)用户实体属性图如图4.13所示:
图4.13 用户实体属性图
(3)管理员类型实体属性图如图4.14所示:
图4.14 管理员类型实体属性图
4.3.2数据库设计表
新闻推荐系统需要后台数据库,下面介绍数据库中的各个表的详细信息:
表4.1 排行榜评论表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
refid | bigint(20) | 否 | 关联表id | |
userid | bigint(20) | 否 | 用户id | |
nickname | varchar(200) | 是 | NULL | 用户名 |
content | longtext | 否 | 评论内容 | |
reply | longtext | 是 | NULL | 回复内容 |
表4.2 新闻评论表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
refid | bigint(20) | 否 | 关联表id | |
userid | bigint(20) | 否 | 用户id | |
nickname | varchar(200) | 是 | NULL | 用户名 |
content | longtext | 否 | 评论内容 | |
reply | longtext | 是 | NULL | 回复内容 |
表4.3 排行榜
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
biaoti | varchar(200) | 是 | NULL | 标题 |
fabushijian | datetime | 是 | NULL | 发布时间 |
neirong | longtext | 是 | NULL | 内容 |
shipin | varchar(200) | 是 | NULL | 视频 |
faburen | varchar(200) | 是 | NULL | 发布人 |
tupian | varchar(200) | 是 | NULL | 图片 |
thumbsupnum | int(11) | 是 | 0 | 赞 |
crazilynum | int(11) | 是 | 0 | 踩 |
clicktime | datetime | 是 | NULL | 最近点击时间 |
clicknum | int(11) | 是 | 0 | 点击次数 |
表4.4 收藏表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
userid | bigint(20) | 否 | 用户id | |
refid | bigint(20) | 是 | NULL | 收藏id |
tablename | varchar(200) | 是 | NULL | 表名 |
name | varchar(200) | 否 | 收藏名称 | |
picture | varchar(200) | 否 | 收藏图片 |
表4.5 管理员表
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
username | varchar(100) | 否 | 用户名 | |
password | varchar(100) | 否 | 密码 | |
role | varchar(100) | 是 | 管理员 | 角色 |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 新增时间 |
表4.6 新闻
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
biaoti | varchar(200) | 是 | NULL | 标题 |
neirong | longtext | 是 | NULL | 内容 |
shipin | varchar(200) | 是 | NULL | 视频 |
fabushijian | datetime | 是 | NULL | 发布时间 |
faburen | varchar(200) | 是 | NULL | 发布人 |
fengmian | varchar(200) | 是 | NULL | 封面 |
thumbsupnum | int(11) | 是 | 0 | 赞 |
crazilynum | int(11) | 是 | 0 | 踩 |
clicktime | datetime | 是 | NULL | 最近点击时间 |
clicknum | int(11) | 是 | 0 | 点击次数 |
表4.7 用户
字段 | 类型 | 空 | 默认 | 注释 |
id (主键) | bigint(20) | 否 | 主键 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 创建时间 |
zhanghao | varchar(200) | 是 | NULL | 账号 |
mima | varchar(200) | 是 | NULL | 密码 |
xingming | varchar(200) | 是 | NULL | 姓名 |
xingbie | varchar(200) | 是 | NULL | 性别 |
shouji | varchar(200) | 是 | NULL | 手机 |
touxiang | varchar(200) | 是 | NULL | 头像 |
5系统详细实现
5.1 管理员模块的实现
5.1.1 用户信息管理
新闻推荐系统的系统管理员可以可以对用户信息添加修改删除操作。具体界面的展示如图5.1所示。
图5.1 用户信息管理界面
5.1.2 排行榜管理
系统管理员可以对排行榜进行手动管理,可以对排行榜进行添加删除修改操作。具体界面如图5.2所示。
图5.3 排行榜管理界面
5.1.3 新闻信息管理
系统管理员可以对新闻信息进行添加,修改,删除操作。界面如下图所示:
图5.4 新闻信息管理界面
5.2 用户模块的实现
5.2.1 首页信息
用户登录后,可以在首页查看排行榜推荐,新闻推荐信息。界面如下图所示:
图5.5 首页信息界面
5.2.2 新闻信息
用户登录后,首页点击新闻,可以出现新闻界面,并且有分页显示。界面如下图所示:
图5.6 新闻信息界面
5.2.3 我的收藏
用户登录后可以在个人中心里面的我的收藏查看自己收藏的新闻信息。界面如下图所示:
6系统测试
6.1概念和意义
测试的定义:程序测试是为了发现错误而执行程序的过程。测试(Testing)的任务与目的可以描述为:
目的:发现程序的错误;
任务:通过在计算机上执行程序,暴露程序中潜在的错误。
另一个预测是相关的术语叫纠错(Debugging)。它的目的与任务可以规定为:
目的:定位和纠正错误;
任务:消除软件故障,保证程序的可靠运行。测试与纠错的关系,可以用图6-1的数据流图来说明。图中表明,每一次测试都要准备好若干必要的测试数据,与被测试程序一道送入计算机执行。通常把一次程序执行需要的测试数据,称为一个“测试用例(Test Case)。每一个测试用例产生一个相应的“测试结果”。如果它与“期望结果”不想符合,便说明程序中存在错误,需要用纠错来改正。
6.2特性
(1)挑剔性
测试是为了证明程序有错,而不是证明程序无错。因此,对于被测程序就是要“纯毛求疵”,就是要“鸡蛋里挑骨头”。
(2)复杂性
测试仪程序则比较容易,这其实是一个误区。设计测试用力是一项需要细致和高度技巧的高能工作,稍有不慎就会顾此失彼,发生不应用得数楼。
(3)不彻底性
实际测试都是不彻底的,当然不能够保证测试后的程序不存在遗漏的错误。
(4)经济性
通场这种测试称为“选择测试(Selective Testing)”。为了降低测试成本,选择测试用力是应注意遵守“经济性”的原则。
6.3重要性
软件测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。
6.4测试方法
首先我们来说界面测试,界面测试是为了使程序在不同的的操作平台上能够运行界面,并且能够保持原来的风格。我把完整程序拷贝到Windows 7环境下,似的程序运行正常,运行界面上的字体图片等设置都能够保持得非常好。不出现字体变形等情况!
其次进行功能测试。该系统测试采用的是单元测试,集成测试,完善性测试等多种方式进行测试。
经过测试,所有功能都能得以实现,没有任何变形。至此,在功能的测试上也已经比较圆满的完成了。
由于经验不足,写代码时出现了一些考虑不周的系统缺陷,写代码的时候会出现与设想不一致,比如说代码不规范导致接口与接口之间出现问题,功能与客户的要求不符合,这样导致产品不能过关,无法交付。所以产品在上线前必须反复测试,经过反复测试,修改,再测试,再修改,产品才能够不断完善。在整个系统测试中,根据需求文档和设计文档,逐一对功能进行检测并写好测试用例,有效避免残片缺陷,因为产品出现缺陷不仅影响功能,而且可以导致数据的不准确,导致产品质量的降低,经过测试,才能使得产品的稳定性和成熟度得到极大的提升,产品质量也才有保证。
6.5 功能测试
功能测试主要包括五项内容:适用性、准确性、可操作性、依从性、安全性。
本系统功能测试如表6.1所示:
表6.1 系统功能测试
测试内容 | 测试结果 |
适用性 | 好 |
准确性 | 好 |
可操作性 | 好 |
依从性 | 好 |
安全性 | 好 |
6.6可用性测试
可用性测试用于检测系统的可操作性、可理解性、可学习性等方面内容。具体测试方面如表6.2所示。
表6.2 系统可用性测试
测试项 | 测试人员的评价 |
窗口移动、大小改变、关闭等操作是否正常 | 是 |
操作模块是否友好 | 是 |
模块、提示内容等文字描述是否正确 | 是 |
模块布局是否协调、合理 | 是 |
模块的状态是否正确(对选中项能否发生对应切换) | 是 |
鼠标、键盘操作是否支持 | 是 |
所需数据项是否正确显示 | 是 |
操作流程是否合理 | 是 |
是否提供帮助信息 | 是 |
致谢语
经过几个多月的不断学习,我的毕业设计终于如期完成。此次毕业设计是对我们日常所学计算机理论知识的一次综合性评测,也是将理论应用到实践的一项考察。
首先我要感谢此次指导我的老师,是他的及时纠正我在设计当中出现的问题,使得我的设计高质量完成。指导老师在我本次新闻推荐系统的开发过程中,为程序、框架的设计、代码等方面以及论文设计提供了很多宝贵的意见,并且为我推荐了许多相关的资料,他的指导和建议使我受益匪浅,通过老师的耐心辅导和指点,我的论文顺利完成,在此,我表示深刻的感谢。
我也要感谢帮助过我的同学们,和我一起探讨论文的不足,给我的设计提出宝贵的建议,在这次设计中他们的帮助使得我的设计更加完善更加具体。
最后,我也要感谢学校为我们提供了一个良好的学校环境。祝愿学校的领导教师以及和我一起奋斗的同学们工作顺利,事业有成,也要祝愿学校的前景更加辉煌。
参考文献
[1]付昕. 基于B/S模式仓库管理系统的实现[J].山东省农业管理干部学院学报, 2010, 27(4):166-168
[2] 雷文华, 薛小文. MATLAB和Servlet在网络数据处理中的应用[J]. 电子测试, 2010, (11):81-86.
[3] 黄艳峰. 在Java语言中实施“案例教学”的研究与探索[J]. 电脑知识与技术, 2010, 6(5):1148-1149
[4] 王玉英. 基于JSP的MySQL数据库访问技术[J]. 现代计算机:专业版, 2010, 19(14):63-66
[5] 赵钢. JSP Servlet+EJB的Web模式应用研究[J]. 电子设计工程, 2013, 21(13):47-49
[6] David L.Anderson.Managing Information Systems.清华大学出版社,2002:16
[7] 王家华.软件工程[M],沈阳:东北大学出版社,2011:46
[8] 张孝祥,徐明华.软件开发课堂.清华大学出版社,2009:55
[9] 崔洋.MySQL数据库应用从入门到精通.中国铁道出版社,2013:27
[10] 王珊,萨师煊.数据库系统概论.高等教育出版社, 2006:16
[11] 崔洋.MySQL数据库应用从入门到精通.中国铁道出版社,2013:27
[12] 王珊,萨师煊.数据库系统概论.高等教育出版社, 2006:16
[13] 张海潘.软件工程导论.清华大学出版社,2008:86
[14] 黄艳峰. 在Java语言中实施“案例教学”的研究与探索[J]. 电脑知识与技术, 2010, 6(5):1148-1149
[15] 王玉英. 基于JSP的MySQL数据库访问技术[J]. 现代计算机:专业版, 2010, 19(14):63-66