第40卷第2期2021年2月
绵阳师范学院学报
Journal of Mianyang Teachers'College
Vol.40No.2
Feb.2021
D01:10.16276/jki51-1670/g.2021.02.018
基于Spring Boot的源码资源托管平台设计与实现
戴家树,徐涛,杨星雨,林晓康
(安徽工程大学计算机与信息学院,安徽芜湖241000)
摘要:随着编程技术的快速发展和互联网广泛应用,对开发者的技术要求也在迅速提高。该设计旨在建构一个专注于服务互联网行业职业开发者和编程爱好者的技术交流平台,该系统前端采用LayUI以及Thymeleaf模板引擎;数据存取使用Redis高性能缓存框架;内嵌Shim安全框架,可拦截低权限访问,
保证系统信息安全;在设计系统时添加使用基于ALS算法离线推荐模块,综合利用了协同过滤算法以及基于内容的推荐方法来提供混合推荐。
随着我国各类互联网从业者规模的扩大和数量的增多,本平台对于从事互联网企业的开发者提升自身能力、扩展眼界有巨大帮助作用.
关键词:Spring Boot框架;源码托管;离线推荐
中图分类号:TP31文献标志码:A文章编号:1672-612X(2021)02-0094-05
0引言
在编程和信息技术爆炸性发展的21世纪,以互联网为核心的计算机技术已经渗透到了各行各业.阅读源码是提高从业人员技术水平的一条公认的必经之路■一般的源码资源托管平台操作繁琐,用户体验和发现优质源码的能力不足,与此同时越来越多的开发者开始重新关注基于云的开发者生态系统,这与未来的源码资源托管平台的发展潜力完全一致•
为了解决上述现况,在基于Spring Boot的源码资源托管平台⑴中,普通用户具有前端查看、主页、已下载代码、用户中心、发布代码、失效代码、资源管理等功能;管理员具有统计信息、资源管理、资源类型管理、用户管理、评论管理、友情链接管理等功能,同时还外加了推荐系统以便帮助用户发现
优质源码•拥有这样一个平台,可以对提升自身能力、扩展眼界有巨大帮助•
1系统分析
11设计定位
想要了解一种技术,都存在一定的入门壁垒,这不利于技术的发展和革新,所以作为推广源码资源的平台,其操作应该是无门槛、简单的•它可以满足无论从事何种开发的开发者,都可以从该网站上获取相应的源码以供阅读学习⑵,获取经验教训,寻灵感,认识各个领域的大牛•其次,作为一种托管平台,用户不必实时带着自己的笔记本来回奔波,只需要从平台云端下载托管的代码,就可以免除物理机器的限制和地域的隔离,使同行之间的交流变得十分方便,解放开发者的思绪•最后,该平台还需要拥有发现优质源码的能力,给用户减少时间成本并获得良好的体验•
12数据库设计结构
该系统使用MySQL⑶数据库,按照基本业务需求设计了7张表,分别是资源类型表、源码资源表、评论表、消息表、用户表、用户下载和友情链接表•根据实际的需求,分别针对源码资源表和用户表、源码资源表
收稿日期:2020-09-22
基金项目:安徽省高校自然科学研究项目(KJ2020A0362,KJ2019ZD15),安徽省高校协同创新项目(GXXT-2019-002),安徽工程大学校级科研项目(Xjky072019A03),安徽工程大学科研启动基金计划项目(2018YQQ031).
第一作者简介:戴家树(1987-),男,安徽和县人,讲师,博士,研究方向:计算机视觉和模式识别.
•94•
绵阳师范学院学报(自然科学版)
和资源类型表设置相应的外键,实现连表查询等基本数据操作•同时为了保证系统数据的完整性要求,在用 户修改资源内容等方便设置事务,并使事务符合ACID 要求,数据库E-R 图1所示.
图1数据库E-R 图
Fig.l  E-R  Diagram  of  Database
13功能需求
系统包括前端和后端两个部分,前端的功能设计有:前
端查看、我的主页、已下载代码、用户中心、发布代码、失效代 码、资源管理等基本功能;后端的功能设计包括:统计信息、
资源管理、资源类型管理、用户管理、评论管理、友情链接管
理等基本功能,最后为了实现快速寻优质代码的需求,增
加的各类榜单前端展示功能;此外为了提高智能性,在系统
中使用基于ALS 算法的离线推荐功能,使系统智能化.其系
统业务如图2所示:14性能需求鴉跨托管平合景兢业务BE
图2源码托管平台业务图
Fig.2 Business  Diagram  of  Source
Code  Hosting  Platform
为保证源码资源托管平台可以稳定、安全、高效的运行,结合企业实际情况,系统应当达到以下性能需 求:系统由于通信的需求会存在一定的延迟,并且需要等待系统响应时间,因此为了能够缩短这一
部分代码 执行时间,将其压缩到系统能够接受的限度、同时也应该兼顾多线程和高并发的需要•系统的安全性也是重 中之重.系统须保证数据安全,防止数据异常和非法访问数据.为了让用户有更好的体验,系统的操作应该 是简单和提示信息应该是一目了然的•
2技术支撑
2.1 Spring  Boot  技术
该系统的基础框架是Spring  Boot,基于其Maven 插件,可以创建可执行的JARs 和WARs ;内嵌Tomcat 容 器,可以提供自动配置的“starter"项目对象模型以简化Maven 配置;开发中自动配置Spring 容器以提供准备 好的特性,不需要XML 配置•
2.2 Redis 数据缓存
在数据存取时,使用Redis 数据库完成[4]. Redis 是一个高性能的键值数据库,在使用时,首先初始化Re ­dis  模板,返回值实例化存储对象;之后判断Redis 是否有目标资源列表;若Redis 里没有资源列表,则去数据 库中查询,将该资源推入相应的Redis 资源类型列表;最后分页资源列表并返回当前页.
・95
戴家树,等:基于Spring Boot的源码资源托管平台设计与实现
2.3Shiro安全框架
在安全方面采用Shiro框架⑸.首先验证身份信息,给予角管理权限;在使用Shiro的配置类时:首先,一个URL可以配置多个Filter,使用逗号分割;其次,当设置多个过滤器时,全部验证通过,才视为通过;最后,部分过滤器可以指定参数其中必须设立securityMauager,如果不设置,默认会自动寻工程根目录下的login.jsp页面•在过滤链的定义中,从上往下执行,一般将/**放在最下面,authc所有的url必须认证通过才能访问,anon所有的url可以匿名访问•
2.4Lucene引擎搜索
全文搜索引擎采用Lucene技术.在使用Lucene搜索引擎技术同时,首先创建一个索引目录,然后创建一个分词器实例对象,用来配置文件;之后创建一个索引工具的配置对象;最后创建索引,写出工具类•在使用时:为了防止脏数据的产生,设立一个互斥锁;之后引用上面创建的索引工具;在代码上传时获得上传的对象信息;最后将对象信息交给索引工具•
2.5基于ALS的离线推荐算法
在系统智能化设计中,鉴于ALS算法是非常成熟的推荐算法之一,它的实现代码是面向大众开源的且
已经有相当的巨大数据规模来训练选择更优质的模型,提高推荐的准确度•利用该算法设定的离线统计算法和离线推荐算法周期性的进行结果统计与保存,计算的结果在一定时间周期内是固定不变的,变更的频率取决于算法调度的频率.
3系统设计与实现
3.1注册登录模块
登录模块是系统的基础模块•在用户的登录与注册模块,为系统管理员和普通用户的详细的信息支持•该模块为系统管理员与普通用户之间建立起数据桥梁,通过用户填写个人信息完成用户注册,在登录时通过用户的注册账号和密码匹配是否正确完成登录•值得注意的是,在密码中由于在安全方面的考虑,采用md5算法对密码加密•这就在用户完成注册后,密码被md5加密,在登录时,用户提交的密码需要被md5算法加密后得到的字符串与数据库中的密码比较验证•
3.2用户发布资源模块
该模块是系统的核心模块之一,在这个模块主要是用户来发布自己的代码链接和代码介绍•在这一过程中,用户需要选择自己代码的类型、发布的代码链接(连接需要经过系统自动审核判断它是否失效)、设置关键字和详细信息,设置积分等.在用户按了发布按钮后,管理员就会审核代码.若无敏感信息,即审核通过,在前端显示,该模块流程图如图3所示:
图3用户发布资源模块流程图
Fig.3Flow Chart of User Publishing Resource Module
3.3用户下载及评论模块
用户可以通过博客中对代码的描述选择是否要下载代码,若下载代码只要不是免费的资源都需要扣除相应的积分.用户评论模块与管理员审核评论是一体的.该模块是系统的后端模块之一,在这个模块主要管理员为了审核用户发布的评论.用户不能评论自己的代码和资源.更有利于管理员对评论的综合管理.当管理员通过审核后,评论可以在前端显示•
•96•
绵阳师范学院学报(自然科学版)
3.4用户资源管理模块
该模块是系统的后端模块,在这个模块主要用户管理自己的代码资源链接和代码介绍是否需要修改和删 除,并在前端显示自己所发布资源的各类信息和当前资源的状态(是否通过审核在前端可见),用户还有代码 文档中细节修改的功能,并能快速提交,帮助用户管理代码资源•在资源修改部分,主要可以修改代码或资 源的下载链接、下载积分、所属类型、是否删除等基本功能.满足用户在第一次发布后的多次修改需求.该 模块页面如图4所示:
3.5管理员管理资源模块
该模块是系统的后端模块,在这个模块主要管
理员为了审核用户发布的代码链接和代码介绍是否
存在敏感信息——审核通过,在前端显示.除了审核
以外,管理代码也可以设置该资源是否免费、是否热
门、是否应该被删除,同时还有查看等功能,帮助管
理员管理代码资源•与资源管理类似,在资源类型管
理中主要添加、删除或修改资源种类,也可以通过
Lucene 搜索引擎,模糊搜索资源种类.同时对已发
布的资源可以进行查看、编辑和删除等操作功能,完
善了管理员的管理范围•该模块页面如图5所示:图4用户资源管理前端页面展示Fig.4 Front  Page  Display  of  User  Resource  Management
图5管理员管理资源前端页面展示
Fig.5 Front  Page  Display  of  Administrator  Management
3.6基于ALS 算法的离线推荐
离线推荐服务是综合用户所有的历史数据,利用设定的离线统计算法和离线推荐算法周期性的进行结 果统计与保存,计算的结果在一定时间周期内是固定不变的,变更的频率取决于算法调度的频率⑴.离线推 荐服务主要计算一些可以预先进行统计和计算的指标,为实时计算和前端业务相应提供数据支撑•离线推 荐服务主要分为统计推荐、基于隐语义模型的协同过滤推荐以及基于内容和基于Item-CF 的相似推荐囲. 对于模型,这并不一定是最优的参数选取,所以我们需要对模型进行评估•通常的做法是计算均方根误差 (RMSE),考察预测评分与实际评分之间的误差•springboot框架的作用
—( observedt  - predicted t ) 2 ( 1)
有了 RMSE,我们可以就可以通过多次调整参数值,来选取RMSE 最小的一组作为我们模型的优化选择.RMSE  =4系统测试
4.1测试环境
基于Spring  Boot 的源码资源托管平台使用IntelliJ  IDEA 在WindowslO 操作系统上启动运行,JDK 为 jdkl.8,浏览器使用QQ 浏览器开发版•
• 97
戴家树,等:基于Spring Boot的源码资源托管平台设计与实现
4.2测试方法与内容
系统测试采用黑盒测试和白盒测试⑼相结合的方式,根据系统页面上的功能菜单以及需求进行功能测试.针对本平台,采用故障检测机制3〕判断其可靠性•
4.3测试结果
通过对源码托管平台的测试,基本上达到了预期生成代码加快开发效率的目的,系统页面管理性以及系统拓展性在测试过程中表现优秀•
5结论与展望
经过详细的设计、开发、测试,基于Spring Boot的源码资源托管平台已上线•通过深入考察并分析了源码资源托管平台的可发展空间,然后对该系统进行概要设计和详细设计,最终实现了基于Spring Boot源码资源托管平台•经过功能测试和负载测试,系统运行结果均良好.
参考文献:
[1]胡春玲,王恒,李娟,等.基于Spring Boot的代码自动生成系统设计与实现[J].长春师范大学学报,2020,39(04):37-41,
[2]齐晴,曹健,刘妍岑.GitHub中软件生态系统的演化[J].计算机研究与发展,2020,57(03)=513-524.
[3]胡强.MySQL数据库常见问题分析与研究[J].电脑编程技巧与维护,2019(12):91-92,
[4]宋云奎,吴文鹏,赵磊,等.基于Redis的分布式数据存储方法[J].计算机产品与流通,2020(08):106.
[5]王杉文.基于SpringBoot+Shim的权限管理实现[J].电脑编程技巧与维护,2019(09):160-161+173.
[6]李致远,冯琳.一种基于Lucene的高效索引建立方法[J].工业控制计算机,2020,33(01)=77-78.
[7]Tudor Ovidiu Popa,Paul Nedelea,Catalin Bouros,Mihaela Corlade,Gabriela Grigorasi,Anca Haisan,Diana Cimpoesu.Simula­
tion of cardiac arrest cases:a pathway for improving the ERC ALS algorithm teaching and learning on medical students[J].Re­suscitation,2019,142:69-79.
[8]刘婷婷.基于ALS算法的个性化推荐系统的应用研究[D].大连:大连交通大学,2018.
[9]张林,李宁,侯霞,等•一种办公软件自动化测试方法[J]•北京信息科技大学学报(自然科学版),2020,35(01):32-37.
[10]张策,刘宏伟,白睿,等.可靠性模型中故障检测率研究述评[J].软件学报,2020,31(09)=2802-2825.
De或gn and Inpiementation of Source Code
Hosting Platform Based on Spring Boot
DAI Jiashu,XU Tao,YANG Xingyu,LIN Xiaokang
(School of Computer and Information,Anhui Polytechnic University,Wuhu,Anhui241000)
Abstract:With the rapid development of programming technology and wide application of the Internet,the technical requirements for developers are also increasing rapidly.This paper aims to build a technical communica­tion platform which is focusing on serving professional developers and programming enthusiasts in the Internet indus­try.Layui and Thymeleaf template engines are used in the front end of this system.Redis high Performance caching framework is used in Data access and Shiro security framework is embedded,which can intercept low permission access to ensure the security of system information.The offline recommendation module based on ALS algorithm was added in the design of the system,and the collaborative filtering algorithm and content-based recommendation method were comprehensively utilized to provide mixed recommendation.With the expansion of the scale and num­ber of various types of Internet practitioners in China,this platform is of great help to developers engaged in Internet enterprises to improve their ability and broaden their horizons.
Keywords:Spring Boot framework,source code hosting,offline recommendation
(责任编辑:陈英)
・98・

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。