基于springboot的新闻推荐系统(045)
摘要
随着信息互联网购物的飞速发展,国内放开了自媒体的政策,一般企业都开始开发属于自己内容分发平台的网站。本文介绍了新闻推荐系统的开发全过程。通过分析企业对于新闻推荐系统的需求,创建了一个计算机管理新闻推荐系统的方案。文章介绍了新闻推荐系统的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计和数据库设计。
本新闻推荐系统有管理员和用户两个角色。管理员功能有个人中心,用户管理,排行榜管理,新闻管理,我的收藏管理,系统管理等。用户功能可以在首页查看新闻排行榜,新闻信息,并可以注册登录,收藏新闻,对新闻评论。用户注册登录,评论新闻,收藏新闻,查看新闻,搜索新闻。因而具有一定的实用性。
本站是一个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系统概述
1.1 研究背景
如今互联网高速发展,网络遍布全球,通过互联网发布的消息能快而方便的传播到世界每个角落,并且互联网上能传播的信息也很广,比如文字、图片、声音、视频等。从而,这种种好处使得互联网成了信息传播的主要途径,社会上各种各样的信息都想尽办法通过互联网进行传播,互联网对社会产生的影响越来越大。
随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的交换和信息流通显得特别重要。因此,开发合适的新闻推荐系统成为企业必然要走的一步棋。开发合适的新闻推荐系统,可以方便管理人员对新闻推荐系统的管理,提高信息管理工作效率及查询效率,有利于更好的为用户提供服务。
1.2研究目的
随着互联网技术的快速发展,网络时代的到来,网络信息也将会改变当今社会。各行各业在日常企业经营管理等方面也在慢慢的向规范化和网络化趋势汇合。新闻推荐系统的信息化程度体现在将互联网与信息技术应用于经营与管理,以现代化工具代替传统手工作业。无疑,使用网络信息化管理使信息管理更先进、更高效、更科学,信息交流更迅速。
发布新闻如果还用之前的小报形式发布,这样会导致了效率低下。而且,时间一长的话,积累下来的数据信息不容易保存,对于查询、更新还有维护会带来不少问题。对于数据交接也存在很大的隐患。如果采用电子化的存储方式就会带来很大的改善,而且给用户的查询带来了很大便利,因此设计一个新闻推荐系统刻不容缓,能够提高企业在信息技术方面的展示水平。
1.3系统设计思想
一个成功的网站应明确建设网站的目的,确定网站的功能,确定网站规模、投入费用,进行必要的市场分析等。只有详细的策划,才能避免在网站建设中出现的很多问题,使网站建设能顺利进行。同时,一个大型的计算机网站系统,必须有一个正确的设计指导思想,通过合理选择数据结构、网络结构、操作系统以及开发环境,构成一个完善的网络体系结构,才能充分发挥计算机信息管理的优势。根据现实生活中网民的实际需求,本系统的设计按照下述原则进行。
- 有效性:实际上这里的有效性包括两个方面的意思:有用性和可用性。有用性是指站点潜在的能满足用户需求的功能,而可用性是指能够通过站点的操作实现特定的目标。可以看出一个站点如果不能恰当运行或设计得非常槽糕就不是一个好站点。可用站点的效益应该非常高,并易于学习,在实现用户目标时令人满意而不出错。
- 高可靠性:一个实用的网站同时必须是可靠的,本设计通过合理而先进的网络设计以及软、硬件的优化选型,可保证网站的可靠性与容错性。
- 高安全性:在设计中,将充分利用网络软、硬件提供的各种安全措施,既可以保证用户共享资源,充分考虑系统及数据资源的容灾、备份、恢复的要求。为系统提供强大的数据库备份工具。可以保证关键数据的安全性。操作权限级,设置不同的角色确保每一步的操作权限,可以由管理员进行设置。
- 先进性:采用目前国际上最先进的开发技术,使用JSP开发技术,MYSQL作为网站后台数据库。采用这些技术降低了以后的系统运营成本,提高了系统的稳定性和易维护性。
- 采用标准技术:本网站的所有设计遵循国际上现行的标准进行,以提高系统的开放性。
- 外观和技术平衡:系统采用Web风格的界面设计,界面友好、美观,使用方便,易学易用。网站设计的关键问题是外观和技术的平衡。外现不好的网站令人厌烦,站点可以运行很好,但却不能带动用户积极性,相反,如果外观非常有表现力,但技术有限,用户则会感到非常失望。在外观与技术之间需要确定一个清晰而连续的关系,即外观与站点的意图相关,对不同类型的网站处理方法不同。
2相关技术
2.1 MYSQL数据库
MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常适用于Web站点或者其他应用软件的数据库后端的开发工作。此外,用户可利用许多语言编写访问MySQL数据库的程序。作为开放源代码运动的产物之一,MySQL关系数据库管理系统越来越受到人们的青睐,应用范围也越来越广。速度和易用性使MySQL特别适用于Web站点或应用软件的数据库后端的开发工作。
MYSQL数据库具有以下特点:
1、C和C ++中使用和测试,以确保源代码的编译器的便携性和灵活性。
2、支持多种操作系统AIX的,FreeBSD下,HP-UX,Linux和Mac OS中,Novell公司的Netware,OpenBSD系统,OS/2裹时,Solaris,Windows等。
3、提供了用于不同的编程语言的API。编程语言,如C,, C ++,Python和Java的,的Perl,PHP,埃菲尔铁塔,Ruby和Tcl的。
4、以及使用的CPU资源来支持多线程。
5、算法优化查询SQL,切实提高搜索速度。
6、网络上的客户端和服务器可以用来编程任何独立的编程环境,也有中国,GB2312,BIG5,日文写作,一般基金,用于支持多国语言,并且可以嵌入在数据表和其他软件shift_jis访问柱可以用作的名称。
7、TCP / IP,ODBC和JDBC数据库,并提供连接到其他。
8、管理工具的管理,控制和优化数据库的操作。
9、可以数以千万计的记录在一个大的数据库。
2.2 B/S结构
B/S架构是一种基于互联网系统的软件系统开发架构,是现如今在软件系统开发中采用非常大量的一种软件系统结构。现如今B/S架构已经被大量使用,打破了C/S结构的结构,给基于网络结构的软件系统提供了良好的支持。B/S架构伴随着计算机网络技术发展而逐步的发展和更新。伴随着互联网的进一步发展,就要求大多数的管理系统要求不仅仅可以在一台电脑上使用,同时可以在接入互联网的其他电脑也可以使用对系统进行操作和使用。在这样的背景下基于B/S架构的软件系统设计方法得到了越来越大量的使用,基础部分也在不断的更新。
B/S架构是利用操作系统中的浏览器来进行使用的,不是一种窗体软件系统,不需要在使用系统的电脑上进行安装。B/S架构的运行方式是在远程的服务器上把开发的软件系统部署在远程的服务器上,在部署好软件系统之后就可以实现在任何接入互联网的电脑上访问部署好的软件系统。B/S架构给使用管理系统的用户带来极大的便利。
在三层体系结构的B/S(Browser/Server,浏览器/服务器结构)系统中,用户可以通过浏览器向分布在网络上的众多服务器发出请求。B/S系统极大地简化了客户机的工作量,客户机上只需要安装、配置少量的客户端运行软件即可,服务器将担负大量的工作,对数据库的访问以及应用程序的执行都将由服务器来完成。
B/S架构的不断成熟,主要使用WWW浏览器技术,结合多种浏览器脚本语言,用通用浏览器需要实现原本复杂的专有软件来实现的强大功能,并节约了开发成本,是一种新的软件架构。B/S系统包括:表示逻辑层,控制逻辑层,数据展现层,三层是相对独立又相互关联。
2.3 Spring Boot框架简介
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
SpringBoot可以与经典的Java开发工具一起使用或者作为命令行工具安装。无论如何,需要JavaSDK1.6或者更高版本,本项目用到的是JDK1.8版本。
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)相同数据在不同记录中要保持一致。
目前,界面设计已经成为对软件质量进行评价的一条关键指标,一个好的用户界面可以使用户使用系统的信心和兴趣增加,从而使工作效率提高,JSP技术是将JAVA语言作为脚本语言的,JSP网页给整个服务器端的JAVA库单元提供了一个接口用来服务HTTP的应用程序。创建动态页面比较方便。客户界面是指软件系统与用户交互的接口,往往涵盖输出、输入、人机对话的界面格式等。
1.输出设计
输出是由电脑对输入的基本信息进行解决,生成高质量的有效信息,并使之具有一定的格式,提供给管理者使用,这是输出设计的主要责任和目标。
系统开发的过程与实施过程相反,并不是从输入设计到输出设计,而是从输出设计到输入设计。这是由于输出表格与使用者直接相联系,设计的目的应当是确保使用者可以很方便的使用输出表格,并且可以将各部门的有用信息及时的反映出来。输出设计的准绳是既要整体琢磨不同管理层的所有需要,又要简洁,不要提供给用户不需要的信息。
2.输入设计
输入数据的收集和录入是比较麻烦的,需要非常多的人力和一定设备,而且经常出错。一旦输入系统的数据不正确,那么处理后的输出就会扩大这些错误,因此输入的数据的准确性对整个系统的性能起着决定性意义。
输入设计有以下几点原则:
1)输入量应尽量保持在能够满足处理要求的最低限度。输入量越少,错误率就会越少,数据的准备时间也越少。
2)应尽可能的使输入的准备以及输入的过程进行时比较方便,这样使错误的发生率降低。
3)应尽量早检查输入数据(尽量接近原数据发生点),以便使错误更正比较及时。
4)输入数据尽早地记录成其处理所需的形式,以防止数据由一种介质转移到另一种介质时需要转录而可能发生的错误。
3.4系统流程和逻辑
图3-1登录流程图
图3-2修改密码流程图
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.4 新闻信息实体属性图
(2)用户实体属性图如图4.5所示:
图4.5 用户实体属性图
(3)管理员类型实体属性图如图4.6所示:
图4.6管理员类型实体属性图
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.2 排行榜管理界面
5.1.3 新闻信息管理
系统管理员可以对新闻信息进行添加,修改,删除操作。界面如下图所示:
图5.3 新闻信息管理界面
5.2 用户模块的实现
5.2.1 首页信息
用户登录后,可以在首页查看排行榜推荐,新闻推荐信息。界面如下图所示:
图5.4 首页信息界面
5.2.2 新闻信息
用户登录后,首页点击新闻,可以出现新闻界面,并且有分页显示。界面如下图所示:
图5.5 新闻信息界面
5.2.3 我的收藏
用户登录后可以在个人中心里面的我的收藏查看自己收藏的新闻信息。界面如下图所示:
图5.6 我的收藏界面
6系统测试
6.1概念和意义
测试的定义:程序测试是为了发现错误而执行程序的过程。测试(Testing)的任务与目的可以描述为:
目的:发现程序的错误;
任务:通过在计算机上执行程序,暴露程序中潜在的错误。
另一个预测是相关的术语叫纠错(Debugging)。它的目的与任务可以规定为:
目的:定位和纠正错误;
任务:消除软件故障,保证程序的可靠运行。测试与纠错的关系,可以用图6-1的数据流图来说明。图中表明,每一次测试都要准备好若干必要的测试数据,与被测试程序一道送入计算机执行。通常把一次程序执行需要的测试数据,称为一个“测试用例(Test Case)。每一个测试用例产生一个相应的“测试结果”。如果它与“期望结果”不想符合,便说明程序中存在错误,需要用纠错来改正。
图6.1测试与纠错信息流程
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 系统可用性测试
测试项 | 测试人员的评价 |
窗口移动、大小改变、关闭等操作是否正常 | 是 |
操作模块是否友好 | 是 |
模块、提示内容等文字描述是否正确 | 是 |
模块布局是否协调、合理 | 是 |
模块的状态是否正确(对选中项能否发生对应切换) | 是 |
鼠标、键盘操作是否支持 | 是 |
所需数据项是否正确显示 | 是 |
操作流程是否合理 | 是 |
是否提供帮助信息 | 是 |
6.7性能测试
性能测试主要通过模拟系统运行环境,测试系统性能是否符合客户需求。性能测试的重要技术指标就是:系统运行速度、网络响应时间和支持并发节点数。
1)系统运行速度:通过在不同计算机上试运行本系统,没有发现有任何迟滞、停顿现象。
2)网络响应时间:网络响应时间主要包括网络最小响应时间、平均响应时间、最大响应时间三个参数。经过测试,在网络运营良好状态下,NBA局域网内响应时间三参数为:1/2/6s,NBA外网响应时间三参数为3/7/12s,符合客户需求,属于用户心理可承受范围。
3)支持并发节点数:经过模拟环境测试,本系统在并发节点达46个时,网络运营速度会发生较大波动,延迟时间10秒左右,符合客户需求。
6.8测试分析
本网站设计时借鉴了国内外优秀网站的优点,从界面到系统设计都保证了用户能够方便操作。系统的主要特点和优点归纳如下:
(1)本系统用的移置性和针对性都比较高,因为针对性高可以提供更好的服务而移置性可以在多个系统上运行,更给客户带来了极大的方便。
(2)该完整内容全面,管理方便可以及时的全面的处理各种错误,异常,这样避免了很多因用户的马虎操作而出现的失误,其操作方便,用户界面友好,能够上网的人都可以很好的进行操作。
6.9测试结果分析
经过对上述测试结果分析,本系统符合用户需求。所有基本功能点实现,操作简单,操作流程简单合理,产品运行性能良好,是一款值得推广的新闻推荐系统。
结论
在这次毕业设计中遇到的最困难的方面就是在数据库方面的知识,在刚开始进行毕业设计的时候感觉十分困难,根本不知道该从何处下手,但不断的坚持,设计最终被完成。无论多么的困难,只要能够坚持下来,善于去找到好的材料来研究,在研究中充分利用资源,没有困难是不会被成功解决的。
在开发系统的过程中,本人运用到Spring Boot技术和平时学习中所了解的一些技术,通过实现这些技术,大大提高了整个系统的性能。在论文中这些技术都做了比较详细的介绍。本系统还存在很多缺点和不完善的地方,例如有些细节上做的还不够完善,有些功能模块还需要加强。在今后的日子里,能够对这些不足进行改善。
通过这次最终的毕业设计,平时所学到的知识不仅融合了,而且获得了许多计算机知识。在整个设计过程中明白了许多东西,也培养独立工作能力,树立信心,对自己能力的工作能力,我相信以后会学习和工作生活中有至关重要的作用。同时也大大提高了手的能力,使其难以充分体会探索的乐趣和成功的创作过程,设计过程中汲取的东西,是一笔宝贵的财富。
回顾过去做毕业设计的整个过程,充满了付出和收获,但是当你看到成果的时候的感觉,是一种难以用言语表达的喜悦之感这些在毕业设计过程中学习到的东西将会使我终身受益!
最后,感谢指导老师的关心和指导,在我毕业设计的整个过程中,他给与了我很多的帮助和讲解,在导师的帮助下我的毕业设计才能如此顺利的完成。
致谢语
经过几个多月的不断学习,我的毕业设计终于如期完成。此次毕业设计是对我们日常所学计算机理论知识的一次综合性评测,也是将理论应用到实践的一项考察。
首先我要感谢此次指导我的老师,是他的及时纠正我在设计当中出现的问题,使得我的设计高质量完成。指导老师在我本次新闻推荐系统的开发过程中,为程序、框架的设计、代码等方面以及论文设计提供了很多宝贵的意见,并且为我推荐了许多相关的资料,他的指导和建议使我受益匪浅,通过老师的耐心辅导和指点,我的论文顺利完成,在此,我表示深刻的感谢。
我也要感谢帮助过我的同学们,和我一起探讨论文的不足,给我的设计提出宝贵的建议,在这次设计中他们的帮助使得我的设计更加完善更加具体。
最后,我也要感谢学校为我们提供了一个良好的学校环境。祝愿学校的领导教师以及和我一起奋斗的同学们工作顺利,事业有成,也要祝愿学校的前景更加辉煌。
参考文献
[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
相关文章:
基于springboot的新闻推荐系统(045)
摘要 随着信息互联网购物的飞速发展,国内放开了自媒体的政策,一般企业都开始开发属于自己内容分发平台的网站。本文介绍了新闻推荐系统的开发全过程。通过分析企业对于新闻推荐系统的需求,创建了一个计算机管理新闻推荐系统的方案。文章介绍了…...
解决Selenium滑动页面到指定元素,点击失效的问题
White graces:个人主页 🙉专栏推荐:Java入门知识🙉 🐹今日诗词:君失臣兮龙为鱼,权归臣兮鼠变虎🐹 ⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏 ⛳️点赞 ☀️收藏⭐️关注Ǵ…...
医学图像白血病分割数据集labelme格式245张5类别
数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):245 标注数量(json文件个数):245 标注类别数:5 标注类别名称:["basophil Leukemia","Lymphocyte…...
深度学习Python编程:从入门到工程实践
第一章 Python语言概述与生态体系 1.3 Python在工业界的应用场景 # 示例:使用FastAPI构建RESTful接口 from fastapi import FastAPI from pydantic import BaseModelapp = FastAPI()class Item(BaseModel):name: strprice: float@app.post("/items/") async def cr…...
DHCPv6 Stateless Vs Stateful Vs Stateless Stateful
DHCPv6常见配置模式 在 IPv6 网络中,DHCPv6 的 Stateless(无状态)、Stateful(有状态) 和 Stateless + Stateful(混合模式) 是三种常见的配置模式。它们的主要区别在于客户端如何获取 IPv6 地址和其他网络配置信息(如 DNS 服务器)。 Stateless(无状态)模式 Statele…...
Redis Cluster 详解
Redis Cluster 详解 1. 为什么需要 Redis Cluster? Redis 作为一个高性能的内存数据库,在单机模式下可能会遇到以下问题: 单机容量受限:Redis 是基于内存存储的,单机的内存资源有限,单实例的 Redis 只能…...
Spring(8)——MyBatis入门(2)
一、Mybatis的xml配置文件 Mybatis的开发有两种方式: 注解xml 上一篇博客介绍了用注解的方式操作数据库,这一篇介绍通过xml配置文件的方式操作数据库。 1.1 xml配置文件规则 在Mybatis中使用XML映射文件方式开发,需要符合一定的规范&…...
解析DeepSeek的技术内核:混合专家架构如何重塑AI效能
解析DeepSeek的技术内核:混合专家架构如何重塑AI效能 在当今大型语言模型(LLM)竞争激烈的赛道上,中国AI企业DeepSeek凭借其独特的技术路线脱颖而出。其核心优势之一,便是对混合专家(Mixture of Experts&…...
Android在kts中简单使用AIDL
Android在kts中简单使用AIDL AIDL相信做Android都有所了解,跨进程通信会经常使用,这里就不展开讲解原理跨进程通信的方式了,最近项目换成kts的方式,于是把aidl也换成了统一的方式,其中遇到了很多问题,这里…...
【C++】类和对象(匿名对象)
匿名对象 用 类型(实参) 定义出来的对象叫做匿名对象,相比之前我们定义的 类型 对象名(实参) 定义出来叫有名对象匿名对象生命周期只在当前一行,一般临时定义一个对象当前用一下即可,就可以定义匿名对象。 class A { public:A(int a 0):_a…...
Spring boot 3.4 后 SDK 升级,暨 UI API/MCP 计划
PS 写这篇文章后看到 A Deep Dive Into MCP and the Future of AI Tooling | Andreessen HorowitzWe explore what MCP is, how it changes the way AI interacts with tools, what developers are already building, and the challenges that still need solving. https://a1…...
使用Helm安装、 升级、 回滚Kubernetes应用
前言 在我之前做的项目里,我们对Microk8s微服务的更新是通过自制tar包的方式做的, tar包存储了镜像和YAML文件。 每次升级时,我们需要先删除所有的YAML资源,然后重新创建新的资源。 这种方式存在以下问题: 服务中断:…...
Text-to-SQL将自然语言转换为数据库查询语句
有关Text-To-SQL方法,可以查阅我的另一篇文章,Text-to-SQL方法研究 直接与数据库对话-text2sql Text2sql就是把文本转换为sql语言,这段时间公司有这方面的需求,调研了一下市面上text2sql的方法,比如阿里的Chat2DB,麻…...
gin学习
gin学习笔记,不仅包含了基本的增删查改外,还包括参数传递,上传下载,模版、session与中间件等,方便收藏自习可用 文章目录 获得个请求get打印字符串get请求xmlget请求跳转http方法路由可以通过Context的Param方法来获取…...
【HarmonyOS NEXT】关键资产存储开发案例
在 iOS 开发中 Keychain 是一个非常安全的存储系统,用于保存敏感信息,如密码、证书、密钥等。与文件系统不同,Keychain 提供了更高的安全性,因为它对数据进行了加密,并且只有经过授权的应用程序才能访问存储的数据。那…...
高德终端技术总结:高可用架构如何练成?
前言 高德地图作为国民级应用,特别是出行场景的独特性,要确保在线导航高并发和交通安全级的超稳定性,这对技术团队提出异乎寻常的高要求,无论是终端、云端,还是“终端-云端”之间的连接,都必须实现“高可用…...
STM32八股【3】------RAM和片上FLASH
1、RAM和FLASH构成 1.RAM ┌──────────────────────────┐ │ 栈区 (Stack) │ ← 从RAM顶端向下扩展(存储局部变量、函数调用信息) │--------------------------│ │ 堆区 (Heap) │ ← …...
Apache Doris
Apache Doris介绍 Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场…...
Debezium介绍
1.什么是Debezium Debezium 是一个开源的分布式平台,用于捕获数据库的变更事件(CDC,Change Data Capture)。它能够实时捕获数据库中的行级更改,并将这些更改作为事件流发送到消息中间件(如 Apache Kafka&a…...
奇迹科技:蓝牙网关赋能少儿篮球教育的创新融合案例研究
一、引言 本文研究了福建奇迹运动体育科技有限公司(简称‘奇迹科技’)如何利用其创新产品体系和桂花网蓝牙网关M1500,与少儿篮球教育实现深度融合。重点分析其在提升教学效果、保障训练安全、优化个性化教学等方面的实践与成效,为…...
Python散点图(Scatter Plot):高阶分析、散点图矩阵、三维散点图及综合应用
散点图:数据分析的利器 在数据分析领域,散点图是一种直观且强大的可视化工具,广泛应用于揭示变量间的相关性以及识别数据集中的异常值。本文将深入探讨散点图的这两种关键功能,并结合实际案例与Python代码示例,带您全面了解散点图的应用。 一、散点图如何展示变量间的相…...
计算机网络层超全解析:从IP协议到路由算法
🌐 (专业详解生活化类比,逻辑一镜到底) 📖 网络层的核心使命 核心任务:在不同网络间为数据包选择最佳路径,实现端到端通信。 类比:快递公司总部(网络层)根据…...
RoboVQA
RoboVQA:面向机器人技术的多模态长时推理 摘要 我们提出了一种可扩展、自下而上且具有内在多样性的数据收集方案,适用于中长时高级推理任务,其吞吐量比传统的自上而下分步收集方法高2.2倍。通过在3栋办公楼内使用多种实体(机器人、人类、使用抓取工具的人类)执行任意用…...
javascript语法入门
一、变量声明 在JavaScript中,可以使用var、let和const来声明变量。 javascript var name "张三"; let age 20; 二、数据类型 JavaScript中有7种基本数据类型:undefined、null、boolean、string、symbol、number,以及object。…...
前端字段名和后端不一致?解锁 JSON 映射的“隐藏规则” !!!
🚀 前端字段名和后端不一致?解锁 JSON 映射的“隐藏规则” 🌟 嘿,技术冒险家们!👋 今天我们要聊一个开发中常见的“坑”:前端传来的 JSON 参数字段名和后端对象字段名不一致,会发生…...
Java——ArrayList集合
ArrayList:基于动态数组实现,支持随机访问,适合频繁的随机访问操作,但在插入和删除元素时性能较差。 技术层面介绍 所属类库:ArrayList 位于 java.util 包中,它实现了 List 接口,因此具备 Lis…...
基于python+django的图书借阅网站-图书借阅管理系统源码+运行步骤
该系统是基于pythondjango开发的在线图书借阅管理系统。系统适合场景:大学生、课程作业、系统设计、毕业设计。 演示地址 前台地址: http://book.gitapp.cn 后台地址:http://book.gitapp.cn/#/admin 后台管理帐号: 用户名&…...
Flutter运行错误:UG! exception in phase ‘semantic analysis‘
最近在Mac Mini M4上通过Android Studio导入Flutter项目并运行,结果一直跑不起来,错误日志如下: 执行命令查看版本信息: flutter doctor --verbose通过输出信息Java version OpenJDK Runtime Environment (build 21.0.41242208…...
Python-docx库详解:轻松实现Word文档自动化生成与图片尺寸控制
Python-docx库详解:轻松实现Word文档自动化生成与图片尺寸控制 在现代办公自动化的浪潮中,文档处理是一项不可或缺的任务。Python作为一种强大的编程语言,提供了丰富的库来简化这些任务。其中,python-docx库是处理Word文档的有力…...
【NLP 42、实践 ⑪ 用Bert模型结构实现自回归语言模型的训练】
目录 数据文件 一、模型定义 1.模型初始化 代码运行流程 2.前向传播,计算损失 ⭐ 代码运行流程 二、加载语料 代码运行流程 三、 随机生成样本 代码运行流程 四、建立模型 五、采样策略选择 代码运行流程 六、模型效果测试 代码运行流程 七、模型训练 代码运行流程 …...
HTTPS
目录 一 HTTPS是什么 二 加密 三 加密方案 四 CA机构/证书 五 最终方案(对称密钥/非对称密钥/CA证书)和总体流程 一 HTTPS是什么 在应用层存在SSL,TLS(HTTP之下,传输层之上)加密/解密安全协议,如果HTTP经过这个协议,对端也走…...
electron框架(4.0)electron-builde和electron Forge的打包方式
----使用electron-builder打包(需要魔法) --安装electron-builder: npm install electron-builder -D--package.json中进行相关配置: {"name": "video-tools","version": "1.0.0","main&quo…...
SaaS系统的销售微服务与权限微服务边界设计
在设计SaaS系统的销售微服务与权限微服务的边界时,需要结合领域驱动设计(DDD)和微服务拆分原则,确保高内聚、低耦合。以下是结合微服务架构原则、多租户SaaS需求及权限管理场景的完整设计方案,整合了权限服务与销售服务…...
Unity-AI-Deepseek生成的生成模型代码
结果 能用,不是很理想,从左到右,分别是body,眼睛,演睫毛,手指套(如果你知道这是什么)结果不是很理想 (下面代码已包含,修复的切线只能传Vector3参数,Unity2022测试) 你们帮我看看…...
Django REST Framework 请求封装源码解析与实现流程
版本说明: Django: V4.2.20 Django Rest Framework: V3.15.2 一、核心封装流程示意图 #mermaid-svg-qXJLIa9Bx1TCiPSN {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-qXJLIa9Bx1TCiPSN .error-icon{fill…...
简介PyCDE:Python CIRCT Design Entry
简介PyCDE:Python CIRCT Design Entry 引言 在硬件设计和验证领域,随着设计复杂性的增加,传统的方法往往难以满足现代设计的需求。PyCDE(Python CIRCT Design Entry)作为CIRCT项目的一部分,旨在为硬件设计…...
Python实现deepseek接口的调用
简介:DeepSeek 是一个强大的大语言模型,提供 API 接口供开发者调用。在 Python 中,可以使用 requests 或 httpx 库向 DeepSeek API 发送请求,实现文本生成、代码补全,知识问答等功能。本文将介绍如何在 Python 中调用 …...
考研课程安排(自用)
文章目录 408数据结构(王道)计算机组成原理(王道)操作系统(王道)计算机网络(湖科大版) 数学一高等数学(微积分)线性代数和概率论 408 数据结构(王…...
Mybatis操作数据库(注解+xml两个方式)
文章目录 1.个人回顾2.关于mybatis注解的说明3.字段和属性不匹配的解决方案3.1第一个方案3.2第二个方案3.3第三个方案 4.xml路径配置5.xml里面的字段映射 1.个人回顾 刚刚翻看了一下自己的这个之前写的博客,上一次和这个javaee相关的博客还是去年写的,也…...
文心快码 使用体验与介绍
一、文心快码的核心作用 文心快码是百度基于文心大模型开发的智能代码助手,核心价值包括: 代码生成与补全 通用开发:根据注释生成HTML/CSS/JS、Python、Java等代码C专项:生成类定义、STL容器操作、智能指针代码(如st…...
区块链交易
文章目录 交易准备合约和代码逻辑合约compile.jsindex.js 运行 交易 项目来自https://github.com/Dapp-Learning-DAO/Dapp-Learning/blob/main/basic/02-web3js-transaction/README-cn.md 本项目包含对交易进行签名,发送,接收交易回执,验证…...
LeetCode 160 Intersection Of Two Linked Lists 相交链表 Java
题目:找到两个相交列表的起始点,如图c1开始为A和B两个链表的相交点 举例1:8为两个链表的相交点。 注意:相交不止是数值上的相同。 举例2:2为相交点 举例3:没有相交点 解题思路: 相交证明最后一…...
体育直播模板nba英超直播欧洲杯直播模板手机自适应
源码名称:体育直播模板nba英超直播欧洲杯直播模板手机自适应帝国cms 7.5模板 开发环境:帝国cms7.5 空间支持:phpmysql 带软件采集,可以挂着自动采集发布,无需人工操作! 模板特点: 程序伪静态…...
Android Compose 图标按钮深度剖析:从源码到实践(五)
Android Compose 图标按钮深度剖析:从源码到实践 一、引言 在现代 Android 应用开发中,用户界面的交互性和美观性至关重要。图标按钮作为一种常见的 UI 元素,以其简洁直观的特点,在提升用户体验方面发挥着重要作用。Android Com…...
【Dive Into Stable Diffusion v3.5】2:Stable Diffusion v3.5原理介绍
【Dive Into Stable Diffusion v3.5】系列博文: 第1篇:开源项目正式发布——深入探索SDv3.5模型全参/LoRA/RLHF训练第2篇:Stable Diffusion v3.5原理介绍 目录 1 前言1.1 扩散模型的原理1.2 损失函数1.3 加噪流程1.4 推理流程1.5 negative pr…...
WPF 布局舍入(WPF 边框模糊 或 像素错位 的问题)
1. 什么是 WPF 布局舍入? 在 WPF 开发过程中,可能会遇到界面模糊、边框错位、文本渲染不清晰等问题。这些现象通常是由于 WPF 采用 设备无关像素(DIP, Device Independent Pixels),在不同 DPI 设置下,UI 元…...
前端-选中pdf中的文字并使用,显示一个悬浮的翻译按钮(本地pdfjs+iframe)不适用textlayer
使用pdfjs移步– vue2使用pdfjs-dist实现pdf预览(iframe形式,不修改pdfjs原来的ui和控件,dom层可以用display去掉一部分组件) 方案1:获取选择文本内容的最前面的字符坐标的位置(这种写法会导致如果选择超出…...
Mongodb分片模式部署
MongoDB 分片集群部署教程 1. 概述 MongoDB 分片是一种用于处理大规模数据集的集群技术。通过分片,MongoDB 可以将数据分布在多个服务器上,从而提高存储容量和读写性能。本教程将详细介绍如何从零开始部署 MongoDB 分片集群。 介绍 分片集群中主要由三…...
「一起学后端」Nest.js + MySQL 查询方法教学文档
Nest.js MySQL 查询方法教学文档 文章目录 Nest.js MySQL 查询方法教学文档1. 基础 CRUD 操作1.1 创建记录1.2 查询记录1.3 更新记录1.4 删除记录 2. 复杂查询2.1 分页与排序2.2 关联查询(JOIN)2.3 聚合查询2.4 子查询 3. 高级操作3.1 事务处理3.2 Typ…...
基于Spring Boot的企业内管信息化系统的设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...