系统合集跳转
源码获取链接
一、系统环境
运行环境: 最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
IDE环境: Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以
tomcat环境: Tomcat 7.x,8.x,9.x版本均可
操作系统环境: Windows XP/7/8//8.1/10/11或者Linux或者MacOS,2G内存以上,推荐4G,4G以上更好
用了技术框架: HTML+CSS+JavaScript+jsp+mysql+Spring+SpringMVC+mybatis+Spring boot
数据库: Mysql数据库,任意版本均可,也可使用各种数据库工具,例如Navicat等。
二、摘要
随着2019年末冠状病毒在中国武汉的首次爆发,疫情愈演愈烈,全国各地相继出台封禁措施,以社区为单位的网格化式疫情防控管理也逐渐备受青睐.如果能利用互联网的科技力量为社区疫情防控增添一臂之力,那么这将会极大的减轻社区疫情防控人员的工作量。
本文设计并实现了一款基于SpringBoot框架的疾病预防系统,采用B/S进行架构,数据存储方面采用MySQL关系型数据库,将系统分为管理员和用户两个角色,普通用户可以在该系统前台可以登录注册、完善并查看个人信息、查看公告信息、查看疾病预防须知信息、购买疾病预防用品、进行信息评价、外来情况进行报备等功能。管理人员拥有用户管理、报备信息管理、防疫用品管理、订单管理、评价管理以及公告管理等功能。设计该系统希望很大程度上代替人工记录和统计,希望通过对疾病预防系统的研究,解决当下疾病预防的问题,为减轻新冠传播做贡献。
【关键词】:疾病预防;SpringBoot框架;MySQL数据库;
三、目录
1 绪论 1
1.1 课题研究背景 1
1.2 研究现状 1
1.3 论文主要研究内容 1
1.4本章小结 2
2 开发工具及核心技术 3
2.1 开发工具选取 3
2.1.1 Navicat 3
2.1.2 IntelliJ IDEA 3
2.1.3 Tomcat7简介 3
2.2 开发技术选取 3
2.2.1 SpringBoot框架 3
2.2.2 Mybatis框架 4
2.3 本章小结 4
3 系统分析 5
3.1 需求分析 5
3.1.1 前台功能需求分析 5
3.1.2 后台功能需求分析 6
3.2 可行性分析 7
3.2.1 技术可行性 7
3.2.2 经济可行性 7
3.2.3 操作可行性 8
3.3 非功能性需求分析 8
3.4 本章小结 9
4 系统设计 10
4.1 架构设计 10
4.1.1 软件总体架构 10
4.1.2 开发流程设计 11
4.1.3 系统部署设计 11
4.2 功能模块设计 12
4.2.1 前台功能模块设计 12
4.2.2 后台功能模块设计 13
4.3 系统流程设计 13
4.3.1 注册登录流程 13
4.3.2 在线留言流程 14
4.3.3 修改密码 15
4.3.4 外来报备流程 15
4.3.5 防护用品购买流程 16
4.3.6 后台管理流程 16
4.4 本章小结 17
5 系统实现 18
5.1 前台功能模块实现 18
5.1.1 注册功能 18
5.1.2 防护用品购买 19
5.1.3 在线交流功能 22
5.1.4 外来人员报备功能 23
5.2 后台功能模块实现 25
5.2.1 用户管理功能 25
5.2.2销量统计功能 27
5.2.3 防疫信息管理 28
5.2.4 商品管理功能 30
5.3 本章小结 32
6 系统测试 33
6.1 测试规划 33
6.2 功能测试 33
6.3 安全测试 35
6.4 性能测试 36
6.5 本章小结 36
总 结 37
参考文献 38
致 谢 39
四、论文内容
1 绪论
1.1 课题研究背景
随着互联网技术的不断发展,信息产业的不断扩张,网络普及到了各行各业中。在信息化如此发达的今天,人们可以足不出户进行点餐,外送派送到家,在网上进行购物,挑选心仪的衣服,或者预约网约车出行,网络已经深入人们生活的衣食住行中去。但是对于疾病预防来说绝大多数还是采用传统的管理方式,采用人工记录,过程十分繁琐。如果采用计算机技术来取代,则会极大的增加管理效率。同时,国家鼓励大力发展科技产业,出台多项政策扶持互联网新型产业,传统行业结合互联网进行变更已经成为时代发展的潮流。
随着新冠疫情不断严重,全国各地相继出台封禁措施,以社区为单位的网格化式疫情防控管理也逐渐备受青睐。如果能利用互联网的科技力量为社区疫情防控增添一臂之力,那么这将会极大的减轻社区疫情防控人员的工作量,从而在全国范围内降低传染病传播的风险,所以,开发出一款疾病预防管理系统迫在眉睫。
1.2 研究现状
对于国内来说,近几年来,我国的经济发展迅速,许多领域都已经开始向世界领先水平迈进。然而要与世界接轨,就需要一套完善的信息技术管理平台。在相关领域的文献中,陶钰洁发布的《信息管理系统在疾病预防控制中的应用》一文中提到伴随当今网络技术、计算机技术及数据库技术的持续更新与完善,其在信息管理当中得到广泛应用,有力推动着信息管理系统的发展与成熟[2]。当前,随着信息管理系统应用范围与效能的不断扩充,其在医学领域中得到不错应用[2]。
对于国外来说,互联网技术发展较早,早在上世纪60年代就出现了管理系统MIS系统,对于管理系统的研究国外有非常悠久的历史,利用计算机对各种事务处理、统计报表和查询统计等操作,大大代替了人工去做这些事,人工统计会出现纰漏,人工计算可能会出现偏差以及解决了纸质保存易丢失性,管理系统的出现大大解决了传统管理的问题。互联网技术经过长时间的发展和多次技术革新,网络技术已经十分成熟。目前,信息化管理技术被医学领域所关注,且被不断地推广至该领域的各个环节当中,成为大势所趋。
1.3 论文主要研究内容
疾病预防管理系统主要功能为疾病预防信息进行管理,系统分为两个角色进行使用。功能如下:
管理员角色包含以下功能:查看管理员信息,社区用户信息,在线交流信息、人员检测信息、外来人员报备信息、查看疫情用品类型信息、查看疾病预防用品详情信息、查看订单信息、查看评价信息、查看当前个人信息、发布疾病预防信息等功能。
用户角色包含以下功能:登录注册、完善并查看个人信息、查看公告信息、查看疾病预防须知信息、购买疾病预防用品、进行信息评价、外来情况进行报备等功能。
技术方面,本系统采用Java语言开发,架构为B/S搭建的Web端应用,数据选取MySql数据库进行管理,后端由SpringBoot框架进行搭建,数据库连接采用MyBatis框架进行串联。这些技术也是本文主要研究的内容之一。
1.4本章小结
本章详细介绍了时代背景和技术背景,指出了当下存在的问题,然后阐述了本文的主要研究内容以及章节安排,使得读者能够了解本文的总体架构。
2 开发工具及核心技术
2.1 开发工具选取
2.1.1 Navicat
本系统开发选取采用Navicat的原因是因为它是一款轻量级的可视化软件,没有厚重的环境要求,可随时进行变更以及替换版本[3]。其次,它支持多个不同数据库的连接,除常用的MySql外,还支持Oracle、PostgreSQL以及SQL Server等不同类型的数据库,方便系统更换数据库类型时不需要再替换软件,同时对于国内开发人员来说,Navicat是为数不多支持中文的数据库可视化软件,方便国内开发人员上手开发,最后对于设计表格来说非常便利,提供手动设计表格与修改表字段类型的界面,方便修改数据库表格,基于以上原因,本系统开发选用Navicat软件进行管理数据库。
2.1.2 IntelliJ IDEA
本系统选取Idea软件进行开发带来了非常大的便利,首先,IntelliJ IDEA软件页面比较优美,开发体验良好,支持多语言多种颜色选择,十分人性化。其次,IntelliJ IDEA可以集成多个插件,比如Mybatis的Plus插件,支持自动生成增删改查配置文件,支持lombok插件,免去生成实体类Get、Set方法,为开发系统提供了极大的便利。最后,IntelliJ IDEA软件支持编码辅助和智能编辑等重要功能,可以在代码输入过程中,自动补充方法或类,极大程度上减少开发人员重复工作,非常适用于本系统的开发[4]。基于以上原因,本系统代码的开发采用IntelliJ IDEA软件进行。
2.1.3 Tomcat7简介
本系统之所以采用Tomcat7作为开发容器,是因为Tomcat服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。本系统开发就是部署在Tomcat服务器上,本系统选取Tomcat作为部署容器是因为它具有非常便捷的部署操作,并且架构属于轻量级,不需要占用大量的内存空间,这样确保了项目的快速部署和启动。并且Tomcat属于开源的项目,不需要额外支付费用。基于以上原因,本系统部署容器选择Tomcat服务器上。
2.2 开发技术选取
2.2.1 SpringBoot框架
SpringBoot框架简单来说就是Spring框架的延申,SpringBoot完全迁移利用了Spring的所有特性[5],一大特性就是控制反转和依赖注入,音乐系统中依赖注入部分就是利用到该特性,后台之间模块关联的调用就是靠依赖注入直接引用,不需要每次都进行新建对象,比如在用户管理中,只需要在服务层注入一个用户对象,每个方法都可以调用,不需要每个方法重新新建一遍,可以释放系统内存,并且Spring框架会对该Bean的生命周期进行管理,在不使用的时候还会自动Kill掉,释放内存。
SpringBoot框架另外一大优势就是进行解耦,本系统集合了框架解耦的特性,将用户管理模块、疾病管理模块、防疫用品管理模块等等模块解耦出来,各个模块之间关联较少,在一个模块出现问题后最小程度上减少对系统的影响性,同时继承了Spring框架轻量级的优点,整个系统打完War包部署到服务器上只有40兆大小,不占用内存空间[6]。
此外,SpringAOP也是该框架的核心,SpringAOP为面向切面编程,将维度划分为切面和点,采用该模块可以对日志和事务进行很好的集成,非常方便进行日志管理,本系统日志管理就是基于SpringAOP的基础上实现的。Spring框架拥有这些良好的框架和特性,为本系统的开发提供了诸多的便利,这也是本系统后端开发采用SpringBoot框架的原因之一。
2.2.2 Mybatis框架
MyBatis 本是apache的一个开源项目iBatis,Mybatis框架主要是用于系统和数据库之间交互使用,Mybatis框架同Spring框架进行集成,主要原理是采用了ORM的思想,将数据库字段和实体类字段进行一一映射,系统操作实体类数据,然后通过映射来传入到数据库中进行修改,本系统中在resource目录下配置好Mapper.xml映射,将实体类和系统的持久层代码结合起来,这样系统可以通过改变实体类的赋值来传递到数据库中,完成数据库的读写查操作。
Mybatis框架解决了Hibernate框架全局映射的问题,采用单独编写Sql语句进行控制,这样改变字段只需要对改动的Sql进行修改,不需要再进行全局修改。在本系统中利用Mybatis框架的特性将字段拆分开来,这样做的好处是,既可以方便字段的变更操作带来的代码改动,又可以提高数据库的查询速度。
2.3 本章小结
本章是对本系统所选取对开发工具和技术进行介绍,主要包括对开发工具Navicat、Eclipse、Tomcat等工具进行介绍,对Spring、Springboot、Mybatis等框架进行了分析,便于读者理解。
3 系统分析
3.1 需求分析
根据对使用者进行问卷收集的方式,以及参考市面上同类型系统,将调查到的结果进行收集分析和汇总后将本系统分别对前台和后台的功能进行需求分析。前台主要功能是对疾病预防与报备,以及防疫用品购买和信息交流有关,后台主要功能是对系统所有信息进行统一管理。
根据软件工程开发手册得出系统应该满足以下需求:
- 性能的可靠性:保障系统的运行安全,具有容错性。
- 操作的简单性:简化系统,帮助用户理解和操作,满足用户的良好体验。
- 代码的可读性:拥有齐全的代码和必要注释,易编写,易维护。
3.1.1 前台功能需求分析
前台功能根据模块不同将功能进行了划分,包括用户信息模块、防疫用品模块、疫病预防模块等。其中登录注册、个人信息修改、公告查看、在线交流等功能都归属到用户信息模块当中,在用户注册获取账户后可以进行这些功能。
用户信息模块包括用户登录、个人信息修改、浏览信息、公告查看、退出登录、在线交流等操作。用例图如下图所示。
图3-1 用户信息模块用例图
防疫用品模块主要是对防疫用品进行购买和订单管理有关,主要操作包括防疫用品购买、购物车、订单信息、评价信息。防疫用品模块用例图如下图所示。
图3-2 防疫用品模块用例图
疫病预防模块包括对疾病预防信息进行查看与评论,并且对外来人员进行报备等操作,用例图如下图所示。
图3-3 疾病预防模块用例图
3.1.2 后台功能需求分析
后台功能模块主要是对管理员角色进行开放,登录时需要进行角色识别,非管理员用户不能进行到本系统后台管理界面中去,后台功能主要是对用户信息、防疫用品信息、疾病预防信息以及系统信息进行管理和维护,包括对这些信息进行查询、修改和删除等操作,后台功能模块的设计一方面是为了丰富系统的功能点设计,另一方面主要是对系统信息进行统一维护,避免脏数据的侵入,可以由管理员来进行数据维护,确保系统的长久运行,同时可以对前端页面展示的信息进行维护,让页面更加整洁优美。
后台模块用例图如下图所示。
图3-4 后台模块用例图
3.2 可行性分析
3.2.1 技术可行性
技术可行性是指开发本系统所使用到的技术是否超出开发人员所掌握的临界,如果超出则存在开发风险,如果符合开发人员技术栈则可以进行开发。本系统采用SpringBoot框架进行后台搭建,前端采用JS框架来进行对接接口,这些框架是开发人员学习比较久且掌握的比较深的技术框架,并且对于SpringBoot框架来说,搭建起来非常便利,极大的简化了配置,让开发人员可以更加专注于功能开发上面,并且,本系统前后端分离,代码分割开来,互相不干扰,耦合性非常低,非常适合前后端一起进行开发,这样做可以让代码看起来更为清晰,逻辑结构更加清楚,不管是开发速度还是运维对接都非常便利,并且也没有打破开发人员技术壁垒,不会在技术上面造成困扰。
本系统采用Spring框架来进行开发,主要是为了代替Servlet框架的弊端,Spring框架拥有的两大特性正是本系统开发所需要的,本系统渴望开发出一款轻量级的系统,所以首先需要用到Spring框架的解耦性,将模块之间的关联进行降解,大大减少之间的耦合力度,让一个模块出现问题后最小程度的减少其他模块受到的影响,这样就会让系统变得更为轻盈。
综上所述,技术可行性是可行的。
3.2.2 经济可行性
经济可行性是指系统开发成本和预计收益之间的关系,如果开发成本远大于预计收益时,就需要认真考虑该系统是否要进行立项开发,反之同样要客观对收益情况进行评估。对应到本系统的中就是,首先考虑本系统的开发成本,系统开发环境较为简易,不需要占用大量硬件设备,同时采用SpringBoot框架来进行搭建,极大程度上简化了搭建步骤,这样可以最大程度上减少开发成本。从预估收益上来说,本系统可以极大程度上弥补市场当前的空缺,吸引商家入驻,下发广告来获取利润,在巨大的市场环境下可以获取很大的收益,综合考虑来看,系统的经济可行性分析结果是可行的。
综上所述,对于经济可行性来说是可行的。
3.2.3 操作可行性
操作可行性是指系统在上线和发布后系统操作难度和系统使用复杂度。本系统通过SpringBoot框架进行搭建,所以可以打包成Jar包直接部署在服务器上运行,对于运维人员是非常友好的,不需要再配置Tomcat环境以及JDK环境,直接运行Jar包即可,省去了非常多的操作。系统基于B/S架构运行在Web端上,用户只需要打开界面就可以使用,支持在线播放音乐,即使不用登录也能很好的使用,并且页面进行了良好的UI设计,使用性上面符合正常人操作,适用年龄非常广泛。并且对于系统性能来说,本系统对后台进行了优化,可以确保多人在线时系统也不会进行卡顿,并且各自分离开来,不会影响彼此的操作,对于操作上面非常容易。
综上,本系统完全具备操作可行性。
3.3 非功能性需求分析
非功能性需求分析主要是从系统的正确性、健壮性、性能、安全性、兼容性等方面进行分析和考虑。
正确性:对于正确性来说,本系统对数据库开启事务连接,并且MyBatis框架支持缓存机制,本系统可以确保在系统多次数据交互后还能保证数据正确性,同时对于系统多次操作和使用后仍然确保系统功能正确。
健壮性:系统在前端对输入信息进行校验,系统在不正常输入情况下仍能表现正常的程度,系统会对错误的输入情况进行拦截和反馈,确保系统的健壮性。
性能:系统对数据库查询进行优化,确保大数据量查询速度保持在2s以内的响应,同时本系统采用SpringBoot框架进行搭建,属于轻量级框架,不会占用大量内存,所以响应速度大大提升,同时对图片实施缓存和预加载,保证下次页面可以快速加载,保证性能问题。
安全性:本系统与数据库交互采用预编译的方法,避免Sql注入等问题,同时实现权限管理以及缓存清理,确保暴力破坏导致系统信息丢失。
兼容性:本系统采用Java语言开发,支持跨平台使用,同时对多个浏览器进行兼容性测试,确保系统兼容性。
3.4 本章小结
本章结合时代和技术背景,详细分析了系统的可行性,并具体阐述了系统的需求,最后对系统非功能需求进行分析。
4 系统设计
系统设计主要是对系统架构设计、业务模型设计以及数据库设计来进行分析和研究,对软件系统架构和总体架构进行描述。
4.1 架构设计
4.1.1 软件总体架构
本系统总体分为前端、后端、数据库三层结构,采用MVC设计思想,将后端又细分成,控制层、业务层和持久层。系统架构如下图所示。
图4-1 系统架构图
前端的UI和展示层组成的系统前端结构,前端主要由Html页面结合CSS样式和JS框架组成,来进行页面展示和信息传递。
业务层和数据层组成的后端结构,后端主要由SpringBoot框架结合MyBatis框架来构成后端结构。
数据库采用MySql数据库来存储信息,通过MyBatis框架来完成映射和系统完成数据交互。
并且系统集成日志记录和权限控制能功能,采用SpringBoot框架继承Spring框架AOP控制切面编程的组件,来对日志信息进行管理,通过切面切点来集成到系统后端中,完成日志的管理,可以详细记录每一步系统的操作和类的对象,既方便运维人员跟踪又方便开发人员进行调试。权限控制则是采用Security安全控制框架集成SpringBoot框架来进行实现,通过获取Token来进行权限管理,增加系统的安全性,避免恶意攻击。
4.1.2 开发流程设计
系统开发流程根据软件工程开发流程指导,从系统需求分析开始,进行可行性分析和功能分析,得出系统可行性以及需求说明书,根据需求说明书来进行软件设计,设计具体模块和实现流程,包括UI设计,根据UI设计来进行前端页面开发,开发出前端页面后进行后端功能开发,然后进行前后端交互,开发完成后进行软件测试,软件测试包括回归测试,通过测试后可以进行发布运营产品迭代。开发流程设计图如下图所示。
图4-2 开发流程图
4.1.3 系统部署设计
本系统基于B/S架构,页面在Web端进行操作,可以通过PC电脑或笔记本打开浏览器进行使用。系统后端采用SpringBoot框架进行开发,系统部署在Tomcat容器上,通过打Jar包的形式进行部署运行,同时数据库部署在本地服务器上,通过本地连接来完成数据读写调用。系统部署结构图如下图所示。
图4-3 系统部署结构图
4.2 功能模块设计
疾病预防管理系统根据需求分析得出本系统主要分为两个业务模块,前台功能模块和后台功能模块,前台功能模块由普通用户登录使用,主要业务是进行疾病预防和防控,以及防控用品购买等功能。后台由管理员登录使用,主要业务是对系统信息进行管理和统计。
4.2.1 前台功能模块设计
前台功能模块由用户使用,主要功能包括:登录注册、个人中心、公告查看、防护用品购物、防疫信息查看、订单管理、评价管理、外来人员报备、在线交流、评论留言等功能。具体的功能结构图如下图4-4所示。
图4-4 前台功能结构图
4.2.2 后台功能模块设计
后台功能模块主要是由管理员角色使用,功能主要包括用户管理,在线交流管理、人员检测管、外来人员报备、防疫须知管理、防护用品管理、公告管理、购物管理、系统管理等功能。其中用户管理包括普通用户信息管理和管理员信息管理,防护用品管理包括防护用品详情信息和分类信息进行管理。功能结构图如下图所示。
图4-5 后台功能结构图
5 系统实现
五、代码片段
if(comment == null){ret.put("type", "error");ret.put("msg", "请填写正确的评论信息");return ret;}if(StringUtils.isEmpty(comment.getContent())){ret.put("type", "error");ret.put("msg", "请填写评论内容");return ret;}if(commentService.edit(comment) <= 0){ret.put("type", "error");ret.put("msg", "编辑失败,请联系管理员!");return ret;}
if(!StringUtils.isEmpty(username)){Account account = accountService.findByName(username);if(account != null){queryMap.put("userId", account.getId());}}
if(moneyMin != null){queryMap.put("moneyMin", moneyMin);}if(moneyMax != null){queryMap.put("moneyMax", moneyMax);}if(status != null){queryMap.put("status", status);}queryMap.put("offset", page.getOffset());queryMap.put("pageSize", page.getRows());ret.put("rows", orderService.findList(queryMap));ret.put("total", orderService.getTotal(queryMap));
/*** 查询订单列表* @param sn* @param page
*/
@RequestMapping(value="/list",method=RequestMethod.GET)public ModelAndView list(ModelAndView model){model.setViewName("order/list");model.addObject("accountList",
JSONArray.fromObject(accountService.findList(new HashMap<String, Object>())));return model;}
六、源码获取方式
一键三连+关注+评论留下你的邮箱 获取源码,主动获取 看主页置顶
一键三连+关注+评论留下你的邮箱 获取源码,主动获取 看主页置顶
一键三连+关注+评论留下你的邮箱 获取源码,主动获取 看主页置顶