基于SpringBoot的CNKI数据精炼与展示毕业论文.docx
《基于SpringBoot的CNKI数据精炼与展示毕业论文.docx》由会员分享,可在线阅读,更多相关《基于SpringBoot的CNKI数据精炼与展示毕业论文.docx(40页珍藏版)》请在冰豆网上搜索。
基于SpringBoot的CNKI数据精炼与展示毕业论文
---文档均为word文档,下载后可直接编辑使用亦可打印---
摘要
大数据时代的背景下,当人们面对海量数据的时候,仅凭文本传递与分析数据非常的低速、低效,而基于数据挖掘、理解数据基础上的数据可视化,成为叙事手段一个新的发展方向和突破。
目前在市场上暂未发现有对文献数据信息可视化方面的产品,唯一存在相似的就是知网自身的计量可视化分析系统,这对科研工作者开始一个新的研究,有非常大的帮助和意义,然而这套系统的功能还是不够全面,所展示出的数据图表较少。
本文针对当前存在的此种迫切需求开发基于SpringBoot的CNKI数据精炼与展示系统,通过样式更美丽、功能更全面、用户体验更良好的图表展示出文献间的关系。
通过对数据可视化的业务流程调研,使用Java作为基础语言,使用SpringBoot+Mybatis构造系统架构,使用Echarts+Bootstrap作为视图层框架,使用MySQL作为数据库,在阿里云上布置Tomcat为服务器,开发并实现了基于SpringBoot的CNKI数据精炼与展示系统。
本文采用的技术,使开发变得更敏捷,使系统更加高效、扩展性更好。
通过系统性的开发编码,严密的用例、压力测试,基于SpringBoot的CNKI数据精炼与展示系统中各模块均已成功实现,并已投入使用。
关键词:
Springboot;ECharts;数据可视化
Abstract
Underthebackgroundofbigdataera,whenpeoplearefacedwithmassivedata,onlytexttransferandanalysisdataisverylow-speedandinefficient,anddatavisualizationbasedondataminingandunderstandingdatahasbecomeanewdevelopmentdirectionandbreakthroughofnarrativemeans.
Atpresent,thereisnoproductforthevisualizationofliteraturedatainformationinthemarket.TheonlysimilarityisthemeasurementvisualizationanalysissystemofHowNetitself,whichisofgreathelpandsignificanceforresearcherstostartanewresearch.However,thefunctionofthissystemisnotcomprehensiveenough,andthedatachartsdisplayedarefew.Inthispaper,wedevelopaspringbootbasedCNKIdatarefininganddisplaysystemforthecurrenturgentneeds,andshowtherelationshipbetweendocumentsthroughmorebeautifulstyle,morecomprehensivefunctionandbetteruserexperience.
Throughtheinvestigationofdatavisualizationbusinessprocess,usingJavaasthebasiclanguage,usingspringboot+mybatistoconstructthesystemarchitecture,usingecharts+bootstrapastheviewlayerframework,usingMySQLasthedatabase,andarrangingTomcatastheserveronAlibabacloud,theCNKIdatarefininganddisplaysystembasedonspringbootisdevelopedandimplemented.Thetechnologyadoptedinthispapermakesthedevelopmentmoreagileandmakesthesystemmoreefficientandextensible.Throughsystematicdevelopmentcoding,rigoroususecasesandstresstesting,allmodulesofCNKIdatarefininganddisplaysystembasedonspringboothavebeensuccessfullyimplementedandputintouse.
Keywords:
Springboot;ECharts;datavisualizatio
引言
大数据时代的到来,我们的生活产生数据,数据改变着我们的生活,数据可视化也应运而生[1],它通过样式更美丽、功能更全面、用户体验更良好的图表,为用户带来视觉盛宴的同时减低理解难度,实现用图表加数字的方式给用户讲故事的目的。
在国外,数据可视化已经发展了一段时间,他们使用数据可视化的方式进行发布信息,从而提高用户获取信息的体验。
我国利用数据可视化的发展刚见起色。
前些年,常借助于折线图、饼状图等形式来美化版面,并使用文字加图画的形式宣扬某一种信息[2]。
近些年才开始使用旭日图、热力图等形式来优化信息图表,走上了数据可视化的发展道路。
目前在市场上暂未发现有对文献数据信息可视化方面的产品,唯一存在相似的就是知网自身的计量可视化分析。
然而这套系统的功能还是不够全面,所展示出的数据图表较少。
本文针对当前存在的此种迫切需求开发基于SpringBoot的CNKI数据精炼与展示系统。
本系统拟采用JavaWeb技术进行设计,使用SpringBoot作为Java后台开发框架,使用Mybatis作为持久层框架对数据库操作进行了统一管理,并利用Mybatis官方提供的逆向工程方法生成entity层、dao层及xml文件,使用JQuery作为前端的脚本语言,使用Bootstrap作为CSS框架,使用Echarts作为可视化图表框架,将thymeleaf页面结合JQuery+Bootstrap+Echarts以及Ajax完成页面相关功能,这些技术的结合使开发变得更加的敏捷,并且可以效的提高开发效率和降低耦合性,同时使用开源的MySql作为本系统的储存数据库,使用阿里云学生机作为服务器,解决方案丰富且开发成本低廉。
本系统采用分层模式,将整个系统分为五个层次:
controller、dao、entity、service、view,并使每个层次进行分离,有利于对业务进行单独管理,为程序二次开发提供更多便利。
本系统设计并完成七个模块:
门户模块、搜索研究模块、需求研究模块、趋势研究模块、人群研究模块、系统自检模块、文献信息爬取模块。
本文的大致结构是:
引言,描述本系统的选题背景和开发意义;第一章为相关技术,对开发此系统Java框架、持久层框架、页面技术、爬虫技术进行了综述;第二章为需求分析,通过对系统进行需求分析,综述了本系统所需要的开发环境和运行环境,以及需要完成的功能;第三章为系统设计,综述了系统体系结构、层次结构、功能结构、系统功能、数据库的设计;第四章为功能实现,综述了开发环境、开发规范、数据库实现、项目搭建、核心功能实现;第五章为系统测试,综述了用例测试及压力测试;最后对论文及系统做了总结。
1相关技术
本系统使用Windows10的操作系统,Eclipse2017进行的开发。
采用Bootstrap和ECharts技术来对界面进行主要的功能展示,使用Ajax来进行数据的交互访问,使用jQuery库提升用户体验。
后台使用SpringBoot框架,使用MVC设计模式进行代码的编写[3],使用MySQL数据库来对海量数据进行存储。
1.1SpringBoot框架
1.1.1Spring框架介绍
Spring框架思想起源于2002年RodJahnson所著的书籍。
并在《ExpertOne-on-OneJ2EEDevelopmentwithoutEJB》书中更进一步阐述了在不使用EJB开发JavaEE企业级应用的一些设计思想和具体的做法。
Spring的目的是解决EJB开发JavaEE的代码重复、配置复杂而单调、学习的艰苦、开发效率低的问题,为JavaBean提供了良好的配置框架,使JavaEE的开发变得简单且愉悦。
1.1.2SpringBoot框架介绍
SpringBoot是于2014年4月由Pivotal团队开源的一种基于Spring的全新框架,它基于Spring4.0设计[4],在Spring框架原有的优秀特性上,基于“约定大于配置”的思想,大大简化了Spring应用程序各个方面的配置。
在开发SpringBoot项目时只需要很少的配置,就可以创建一个稳定的、优秀的、产品级别的Spring应用,极大地提高了开发效率,并且可以添加更多的微服务,而不会互相影响[5]。
同时,SpringBoot框架还具有以下几个优点:
(1)SpringBoot提供了可以针对大多数Spring应用常用功能的相关配置。
绝对没有代码生成,不需要XML配置。
(2)SpringBoot自带了Tomcat应用服务器,使项目的部署和管理都非常方便。
(3)SpringBoot提供编码预备功能,如指标、运行状况检查和外部化配置。
(4)SpringBoot提供了创新性的POM启动方式,大大简化Maven配置并且可以自动配置Spring。
图1.1SpringBoot框架示意图
1.2MyBatis框架
在JavaEE程序开发过程中,程序对数据库的操作通常通过JDBC数据库连接技术实现。
随着敏捷开发观点的提出、计算机技术的不断发展,开发人员对JDBC进行封装,形成基于Java的持久层框架Ibatis。
Ibatis在2001年由ClintonBegin发起的开放源代码项目,2016年6月被Google托管,Ibatis3.x正式改名为Mybatis3.x,之后一直沿用名称Mybatis。
图1.2Mybatis框架示意图
如图1.2所示,Mybatis框架具有以下几个特点:
(1)加载配置:
配置文件和有些注解都可以改变Mybatis的配置参数,程序运行时Mybatis会将需要执行的SQL与入参出参配置信息,加载为MappedStatement,并将其放入内存中,以便调用。
(2)自动SQL解析:
Mybatis会根据请求的参数及SQL语句id,找到相应的MappedStatement对象,并自动解析为所执行的SQL。
(3)SQL执行:
将最终得到的SQL和参数拿到数据库进行执行,得到操作数据库的结果。
(4)结果映射:
将数据库的结果按照所设的映射配置进行转换,转换为Java基本类型、JavaBean、HashMap等类型后将结果进行返回。
同时Mybatis框架还具有无第三方依赖,对SQL语句管理与优化更加方便,解除了应用程序代码和SQL语句的耦合[6],支持动态SQL编写,支持ORM字段关系维系,学习成本低等特点。
1.3Echarts框架
Echarts最初有XX公司前端数据可视化团队EFE进行开发,开源后使得它得以快速发展,2013年6月发布后得到了业界高度关注和好评,虽然已经有了种类繁多的图表库,但Echarts具有颠覆性的功能设计和技术特征,使其迅速成为国内数据可视化领域的“后起之秀”。
2017年又由Apache赞助,成为Apache开源基金会孵化的项目。
Echarts是基于Html5Canvas类库,纯JavaScript语言的开源图表库,底层依赖于轻量级的Canvas类库ZRender,基于BSD开原协议,可以流畅的运行在手机端和电脑端[7],兼容性强大,能够提供直观、生动、可交互、可高度个性化定制的数据可视化图表[8]。
同时Echarts还具提供了常规统计的盒形图[9],可视化的地图、热力图、关系图、旭日图[10],提供了图例、视觉映射、数据区域缩放、tooltip、数据刷选等开箱即用的交互组件[11]。
1.4Bootstrap框架
Bootstrap最初由Twitter公司的几个前端开发工作人员于2010年6月创建的工具包,2011年8月由Twitter公司将其开源,至今Bootstrap已发展到包括几十个组件,是一种精致的、经典的、得到充分认可的,并已成为最受欢迎的Web前端框架之一。
Bootstrap学习成本低,可以让所有开发者快速的上手开发,可以适配所有设备,可以流畅的运行在手机端和电脑端,兼容性强大。
Bootstrap提供了一个带有链接样式、栅格系统、背景的基本结构[12],并且自带了全局CSS设置,自带了基本的HTML样式,
1.5JQuery技术
jQuery库是一个快速、简洁的对浏览器兼容性较强的JavaScript库[13],jQuery的宗旨是用更少的代码,做更多的事情。
jQuery对JavaScript进行封装,为使用者提供一种简便的解决方案,可以更方便的处理HTML,可以很轻易的将结构与行为分离。
jQuery具有独特的链式语法和短小清晰的多功能接口,具有高效灵活的CSS选择器,并且可对CSS选择器进行扩展,拥有便捷的插件扩展机制和丰富的插件[14],jQuery能够修改dom节点为页面增加更多效果。
1.6本章小结
本章主要介绍了基于SpringBoot的CNKI数据精炼与展示系统在开发过程中将会使用到的技术,后台开发框架使用SpringBoot,持久化框架使用Mybatis,使用JQuery作为前端的脚本语言,使用Bootstrap作为CSS框架,使用Echarts作为可视化图表框架。
2系统分析
本章基于第一章介绍的相关技术,详细的描述了基于SpringBoot的CNKI数据精炼与展示系统的系统分析,分别从功能需求和非功能需求进行分析,用例图展示了用例之间的关系可以更加直观的展示基于SpringBoot的CNKI数据精炼与展示系统的功能需求。
本章可用于指导本系统后续系统设计、项目开发和项目测试阶段的工作[15]。
2.1功能需求分析
经过对现有系统常规功能的分析,确定基于SpringBoot的CNKI数据精炼与展示系统包括:
门户模块、搜索研究、需求研究、趋势研究、人群研究。
2.1.1门户模块需求分析
基于SpringBoot的CNKI数据精炼与展示系统门户模块起着网站首页与内容汇总的重要作用,通过对关键字的搜索,可以进入系统内部。
具体包含展示搜索关键词功能、展示系统目的及意义功能、输入关键词搜索等功能,如图2.1所示。
图2.1门户模块用例图
展示最热搜索关键词。
用户使用规定浏览器搜索链接,访问本系统时,浏览器会显示本系统的门户模块页面,页面右侧是展示搜索关键词功能,通过对所有用户近期的搜索、以及爬取到的文献关键词提取综合权值计算,展示出得分由高到低前三十的关键词,以2秒展示10个关键词的计划,对前三十的关键词进行循环展示。
查看系统主旨。
用户使用规定浏览器搜索链接,访问本系统时,浏览器会显示本系统的门户模块页面,页面左下方是展示系统目的及意义区域,本系统试图通过分析数据展示出来的结果,可以为他人获得科研选题灵感,为科研课题提供研究思路等等。
键入关键词搜索功能。
用户使用规定浏览器搜索链接,访问本系统时,浏览器会显示本系统的门户模块页面,页面左上方就是关键词搜索功能区域,用户输入自己期望搜索的关键词,进入系统内部,并且可以访问其他模块。
2.1.2搜索研究模块需求分析
搜索研究模块主要功能是展示与搜索有关的的图表,包括所搜索关键词近七日搜索次数折线变化图、所有所关键词的搜索指数、搜索次数排行前十的关键词等功能,如图2.2所示。
图2.2搜索研究模块用例图
近七日搜索次数折线变化图展示功能。
用户使用规定浏览器搜索链接,访问本系统,通过首页搜索关键词进入搜索研究模块页面,页面第一个图表就是近七日搜索次数折线变化图,用于展示所搜索关键词近七日的搜索次数变化情况和七日搜索次数平均值,还可以变为柱形图便于观察,并且可以将图表图片保存至本地。
搜索指数表格展示功能。
用户使用规定浏览器搜索链接,访问本系统,通过首页搜索关键词进入搜索研究模块页面,页面第二个图表就是搜索指数表格区域,用于展示所搜索关键词搜索次数的周均值、月均值、周均同比、月均同比、总和。
搜索总数排行前十柱形图展示功能。
用户使用规定浏览器搜索链接,访问本系统,通过首页搜索关键词进入搜索研究模块页面,页面第三个图表就是搜索总数排行前十柱形图区域,用于展示所有用户搜索总次数最多的前十个关键词。
2.1.3人群研究模块需求分析
人群研究模块主要功能是展示搜索该关键词的人群信息图表,包括用户信息采集功能、用户地域分布地图功能、男女比例饼状图功能、年龄比例图表等功能,如图2.3所示。
图2.3人群研究模块用例图
用户信息采集功能。
用户使用规定浏览器搜索链接,访问本系统,通过首页搜索关键词进入人群研究模块页面,如未填写过年龄、性别信息,则会弹出该功能DIV,让用户填写信息,并将之前之后搜索的关键词填上对应的用户信息。
用户地域分布地图展示功能。
用户使用规定浏览器搜索链接,访问本系统,通过首页搜索关键词进入人群研究模块页面,第一个图表就是用户地域分布地图区域,将所有搜索过该关键词的用户按照省份、直辖市划分,人数越多的省份颜色越深,并且可以人数多少筛选。
性别比例图展示功能。
用户使用规定浏览器搜索链接,访问本系统,通过首页搜索关键词进入人群研究模块页面,第二个图表就是性别比例扇形图区域,用于显示所有搜索过该关键词的用户按照性别划分并显示,并且该图可与年龄比例图联动。
年龄比例图展示功能。
用户使用规定浏览器搜索链接,访问本系统,通过首页搜索关键词进入人群研究模块页面,第三个图表就是年龄比例图区域,用于显示所有搜索过该关键词的用户按照年龄划分并显示,并且该图可与性别比例图联动。
2.1.4需求研究模块需求分析
需求研究模块主要功能是展示所搜索关键词的需求信息图表,包括关键词相关字符云功能、关键词主题指数等功能,如图2.4所示。
图2.4需求研究模块用例图
关键词相关字符云展示功能。
用户使用规定浏览器搜索链接,访问本系统,通过首页搜索关键词进入需求研究模块页面,页面第一个图表就是关键词相关字符云区域,按照时间与相关性排序展示与关键词相关近期最热门的文献名称。
主题指数展示功能。
用户使用规定浏览器搜索链接,访问本系统,通过首页搜索关键词进入需求研究模块页面,页面第一个图表就是关键词主题指数区域,展示主题占比(期刊)、主题占比(硕士)等。
2.1.5趋势研究模块需求分析
趋势研究模块主要功能是展示整体文献信息的数据图表,包括展示整体数据功能、展示近20年文献发布数量功能、展示最热关键词文献数量统计(年)功能、展示近半年各类文献的发布量变化功能、展示文献发布量前十单位功能、每月文献发布量比例等功能,如图2.5所示。
图2.5趋势研究模块用例图
整体数据展示功能。
用户使用规定浏览器搜索链接,访问本系统,通过首页搜索关键词进入趋势研究模块页面,页面第一个图表就是整体数据展示区域,展示系统总文献数,展示用户搜索关键词总数,展示用户搜索总数。
近二十年文献发布量展示功能。
用户使用规定浏览器搜索链接,访问本系统,通过首页搜索关键词进入趋势研究模块页面,页面第二个图表就是近二十年文献发布量展示区域,分为左边前十年半径图,数量越多半径越大,右边后十年面积图,数量越多面积越大。
最热关键词文献数量展示功能。
用户使用规定浏览器搜索链接,访问本系统,通过首页搜索关键词进入趋势研究模块页面,页面第三个图表就是最热关键词文献数量统计面积图区域,根据最热门的前十个关键词统计相关文献,并用面积关系展示。
近半年各类文献的发布量变化展示功能。
用户使用规定浏览器搜索链接,访问本系统,通过首页搜索关键词进入趋势研究模块页面,页面第四个图表就是近半年各类文献的发布量变化折线图区域,根据近半年每月各类文献发布量变化展示为期刊、博士、硕士论文堆积的折线变化图。
文献发布量前十单位展示功能。
用户使用规定浏览器搜索链接,访问本系统,通过首页搜索关键词进入趋势研究模块页面,页面第四个图表就是文献发布量前十单位柱形图区域,根据所有文献发布单位发布的文献总数量排序,选出前十进行柱形图展示。
每月文献发布量比例展示功能。
用户使用规定浏览器搜索链接,访问本系统,通过首页搜索关键词进入趋势研究模块页面,页面第四个图表就是每月文献发布量比例扇形图区域,根据所有文献的发布时间统计每月份发布的文献数量并使用扇形图展示。
2.2非功能需求
非功能需求包括对服务器硬件和软件要求、客户端软件要求、访问容量以及响应时间。
软件要求主要是指对相关操作系统、数据库服务器、Web服务器的要求。
非功能需求的满足程度,直接影响软件质量的满足程度[16]。
基于SpringBoot的CNKI数据精炼与展示系统的非功能需求是包括对开发环境的硬件和软件要求、服务器的硬件和软件要求,访问容量以及响应时间等参数。
软件要求主要是指对相关操作系统、数据库服务器、Web服务器的要求。
如图2.6所示。
图2.6非功能需求清单
2.3本章小结
本章主要介绍了基于SpringBoot的CNKI数据精炼与展示系统的需求分析,分别从功能需求和非功能需求进行分析[17],使用用例图展示了用例之间的关系及其功能,使用表格分别介绍了服务器硬件要求、服务器端软件要求、客户端软件要求等。
3系统设计
本章以上一章所描述的需求分析为基础,对本系统做了系统设计[19]。
设计了体系结构、层次结构、目录结构、功能结构,并设计了系统功能及数据库。
为本项目系统的整个系统编写打好基础。
3.1系统总体设计
本章是对基于SpringBoot的CNKI数据精炼与展示系统的总体设计、模块功能、数据表设计等进行了设计[18],使该系统更加符合用户的需求,同时为测试提供参考。
3.1.1系统体系结构
本系统将采用B/S结构。
程序员把业务逻辑的代码放在服务器端,很大程度上减轻了浏览器端的负担,用户在浏览器端只需要传输数据,数据传入到后端服务器后就会处理此功能的业务逻辑。
B/S结构不仅仅保留了C/S结构优点,还使复杂的程序变得简单起来。
3.1.2系统层次结构
entity层:
又称为bean层,存放与数据表数据类型、名称相同的实体类。
实体类对象与数据库中的数据表具有一一对应的映射关系,所有需要进行数据处理的字段都需要依赖对象模型,所以在开发项目时传入的参数和用到的方法都依赖于该层。
dao层:
又称为mapper层,它的功能都是对数据库中各个表的进行执行SQL的操作。
dao层的类仅仅为方法接口,具体的操作SQL在mapper.xml中定意。
service层:
又称为业务层,存放系统功能的逻辑处理,不直接操作数据库,操作数据库依赖于dao层,为controller层提供