w042基于web的IT技术交流和分享平台的设计与实现
🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。
- 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹
- 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
- 赠送开题报告模板,帮助书写开题报告。
作者完整代码目录供你选择:
- 《Springboot网站项目》400套
- 《ssm网站项目》800套
- 《小程序项目》300套
- 《App项目》500套
- 《python网站项目》600套
⬇️文章末尾可以获取联系方式,需要源码或者演示视频可以联系⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡
项目演示
摘 要
我国科学技术的不断发展,计算机的应用日渐成熟,其强大的功能给人们留下深刻的印象,它已经应用到了人类社会的各个层次的领域,发挥着重要的不可替换的作用。信息管理作为计算机应用的一部分,使用计算机进行管理,具有非常明显的优点,利用网络的优势特开发了本基于Spring Boot的IT技术交流和分享平台。
本IT技术交流和分享平台是基于Spring Boot框架,采用Java技术,MYSQL数据库进行开发的。系统具有灵活的一体化设计方式,圆满完成了整个系统的界面设计。本系统实现了用户功能模块和管理员功能模块两大部分,通过该系统用户可以快速进行IT技术交流和分享,管理员可登录系统后台对系统进行全面管理,确保系统正常稳定的运行。系统功能齐全,符合用户IT技术交流和分享的需求。
本文主要首先介绍了课题背景、设计原则和研究内容,系统采用的相关技术及开发平台,接着对本基于Spring Boot的IT技术交流和分享平台进行系统需求分析和设计,包括系统的功能模块,数据库的设计,系统结构以及系统界面设计等,最后对进行系统测试,完成本篇论文。
关键词:IT技术交流, Spring Boot框架, Java技术,MYSQL数据库
1 绪论
1.1 研究背景
在当今的社会,可以说是信息技术的发展时代,在社会的方方面面无不涉及到各种信息的处理。信息是人们对客观世界的具体描述,是人们进行交流与联系的重要途径。人类社会就处在一个对信息进行有效合理的加工中[3]。它将促进整个社会的发展。随着社会信息技术的提高,计算机已被广泛应用于当今社会的各个领域,成为推动社会发展的首要技术动力。
一个行业发展起来,自然会诞生相关的交流和分享网站,随着计算机技术的发展,IT技术学习的人越来越多,人们在进行IT技术交流和分享的时候,都是基于线下好友间的沟通交流、互相分享,有时间地点的限制,在当今社会已经无法满足用户的需求,针对这一情况,结合目前计算机技术的发展,特开发了本基于Spring Boot的IT技术交流和分享平台。在互联网的迅速发展下,局域网的普及,为建立IT技术交流和分享平台的设计与实现提供了基础条件。IT技术交流和分享平台与传统的交流和分享方式相比,有着无法比拟的优点,网络共享、传播速度快的特点,用户可以随时随地进行IT技术交流和分享,同时管理员通过计算机对系统信息进行管理,大大提高了IT技术交流和分享效率。
1.2 设计原则
在开始开发项目之前,必须要先考虑项目的实用性、科学性,以及该项目是否能够真正让用户受益并尽可能的发挥项目的作用。因此,在开发前,通过以下几条原则对项目进行判断:
(1)可行性原则。项目需要保证经济可行性和技术可行性,这包括了项目在浏览端、服务端等方面上的经济和技术上是可以达成的。
(2)适应性原则。项目要保证可维护性和可扩展性,这是每个非短期项目都需要考虑的,并且不论是维护还是扩展,都必须要建立在适应用户的正常需求的基础上。
(3)安全性及保密性原则。要充分保证用户信息的安全性和保密性,不能因为开发上的疏忽,导致用户的信息泄露。
(4)系统工程原则。为了确保项目的整体性,在项目调查、项目分析、项目设计、项目开发的过程中,都需遵从项目工程的方法和步骤逐步进行。
(5)统一规划、分期实施、逐步完善原则。项目开发的过程中,要按照规划、分期实施,特别是要注意在项目开发过程中要有条理,从点到面,一步步完善,不要贪图进度,要循环渐进的对项目进行开发。
1.3 研究内容
在本次毕业设计中,使用了MYSQL数据库,JAVA编程语言进行系统的开发。本论文一共分为七章,具体内容如下:
第一章介绍了本文的研究背景,设计原则以及研究内容。
第二章介绍了开发基于Spring Boot的IT技术交流和分享平台所采用的技术,开发环境。
第三章对基于Spring Boot的IT技术交流和分享平台进行分析,包括可行性分析,系统功能分析,系统流程分析等。
第四章进行系统的设计,包括系统结构设计,数据库设计等。
第五章介绍系统用户模块和管理员模块界面的详细展示。
第六章介绍了系统的测试。
第七章对系统进行最后的总结工作。
2 系统关键技术
2.1 JAVA技术
Java是一种非常常用的编程语言,在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中,Java的身影无处不在,并且拥有旺盛的生命力。Java的跨平台能力十分强大,只需一次编译,任何地方都可以运行。除此之外,它还拥有简单的语法和实用的类库,让编程人员可以尽可能将精力集中在问题的求解上,并且许多开源项目和科研成果都是采用它实现的。
在1995年这一年的5月份,著名的Sun Microsystems公司在程序开发设计上面郑重推出一种面向对象开发的程序设计语言——Java[15],最开始的时候Java是由詹姆斯.高斯林这位伟大的JAVA之父来进行主导,但是在后来由于各种原因,让甲骨文公司这个针对商业程序创建了oracle大型数据库的公司收购了Java。Java的平台总共算下来有3个,分别为javaME和javaSE以及javaEE这3个java平台。下面将对其进行分别介绍。
(1)在电脑桌面程序的开发上面需要选择JavaME,这个用得也比较多。
(2)企业也会根据工作以及业务需要开发各种软件,那么就会选用JavcEE这个支持企业版软件的开发的Java平台,JavcEE主攻运用在企业领域上面的web应用,JavcEE也在javaSE的基础上获得了比如jsp技术 ,Servlet技术等程序开发技术的支持。
(3)现在生活中手机的普及化,也使得手机端这样的移动设备的软件的兴起,JavaME这个迷你版java平台就能运用于移动端的软件开发操作。
2.2 B/S结构
在早期的程序开发中,使用得最多的莫过于C/S架构了,现在的生活中软件在生活的各个方面落地,使用了C/S架构开发出来的软件也是不在少数的,比如企业日常办公使用到的微软的OFFICE软件,我国自己研发的文档处理软件WPS,还有娱乐软件腾讯的QQ,腾讯的微信,以及电脑上安装的杀毒软件金山杀毒软件,瑞金杀毒软件等都是C/S架构[6]。但是在Internet网络盛行之后,鉴于大家对数据信息共享的需求,在原来的C/S架构上进行了升级改进之后,有了现在的主流架构B/S架构,B/S架构就是在C/S架构上多了一个浏览器,让原来的直接访问服务器的方式,变成了通过浏览器去访问服务器[12]。充分运用到了当下不断成熟的浏览器技术。也让软件的开发成本以及维护成本降低了。可以说B/S这种新型的架构模式让软件的开发变得便利化。图2.3描述了B/S架构的工作原理。详细见下图。
图2-1 B/S架构的工作原理图
2.3 MYSQL数据库
MySQL是典型的关系数据库系统,拥有开源免费、稳定、高效等特点,一直是中小型web项目的最佳数据库选择。MySQL作为当今IT领域使用人数最多的开源关系型数据库软件之一,在2018年的数据库使用率排名中位居第二,仅次于目前为止最成功的商业版数据库Orcle[8]。MySQL最大的优势之一就是无偿使用,这也是它成功的关键。
MySQL支持标准化数据库查询语言SQL。MySQL是一款非常适合个人开发者或小型组织开发团体的数据库管理系统,因为它是开源并且免费的,体积小、速度快、成本低以及其最重要的一点开放源码,深受程序设计人员的喜爱,这也让它成为了许许多多中小型开发网站数据库的首选,同时提供了多种开发的连接API。MySQL将数据的存放按照记录之间的关系存放到了不同的表中,减少了数据的冗余并且提高了开发的工作效率。MySQL支持开发中需要用的大型数据库,并能处理数以万计的记录。因为MySQL是开源的软件,所以在项目的预算中的时候不用花费额外的资金,大大降低了开发的总体成本,这也是MySQL数据库在中小型企业和独立的开发者中广泛流行的原因[7]。
2.4 Spring Boot框架
Spring Boot是一个简化程序设置的拥有开箱即用的框架,它主要的优点是根据程序员不同的设置而生成不同的代码配置文件,这样开发人员就不用每个项目都配置相同的文件,从而减低了开发人员对于传统配置文件的时间,提高了开发效率。它内嵌Tomcat服务器,简化了Maven的配置,自动配置Spring,通过这样的框架,开发人员就不用头疼各种配置文件,可以减少时间,同时提高了代码的整体性,使开发人员工作效率大大提高。
3 系统分析
3.1 可行性分析
为了研究问题并确定问题是否能够在最短的时间内以最低的成本解决,经过对该项目的详细调查研究,初步准备了系统的实施报告,面临的问题和解决方案在软件开发方面进行了初步设计和合理安排,确定了开发目标。
3.1.1 技术可行性
开发程序选择的是面向对象的,功能强大的,简单易用的Java程序设计语言,数据库的开发工具使用到了Mysql数据库,由于自己之前接触过一些简单的程序开发方面的设计作品,所以对于数据库的操作技巧也有一定的积累。另外,程序开发需要在自己电脑上安装的软件并不多,在win7操作系统的大环境下,能够完全搭建好程序开发的操作环境,比如Mysql数据库工具,以及处理程序图片的Photoshop工具等都能安装在自己的电脑上。总的说来,开发这个程序在技术上是可以实现的。
3.1.2 操作可行性
本基于Spring Boot的IT技术交流和分享平台界面风格以简洁优雅的形式呈现。使用方便,无需任何软件安装,操作简单;根据许可使用并提供多种查询手段,操作方面具有很高的可行性。
3.1.3 经济可行性
基于Spring Boot的IT技术交流和分享平台数据库选用Mysql数据库,使用的浏览器都是大众浏览器,这些软件是不需要收费就能进行下载安装操作的。在系统开发的硬件选择上面,我使用的是自己的笔记本进行开发操作。因此在进行系统开发时,经济上面无需额外支出。开发出来的程序可以提高IT技术交流和分享效率,带来的经济效益比较高,系统开发的投入产出比很可观。
3.1.4 法律可行性
本基于Spring Boot的IT技术交流和分享平台开发的所有技术资料都为合法,知识产权问题不会发生在开发过程中,而且没有抄袭其他相关系统,不会有侵犯版权的问题。所以在开发过程中不会涉及法律责任。
从上面几个部分的可行性分析得出,这次开发的基于Spring Boot的IT技术交流和分享平台在开发上面没有什么大问题,值得开发。
3.2系统性能分析
(1)数据安全:存储问题的系统数据,例如在线隐私测试,以确保数据安全。在设计网站时,必须采取安全措施来解决潜在的安全问题。
(2)用户友好性:由于用户权限的所有相关业务流程的功能和所有相关信息的一部分可以被集成到一个统一的用户界面,运行效率和易用性为运营商显着提高,使系统灵活。
(3)延伸性:由于用户需求的不断变化,基于Spring Boot的IT技术交流和分享平台必然涉及到业务更新及扩展,所以要求在刚开始设计的时候就应该考虑良好的延伸性方案。
3.3系统功能分析
本基于Spring Boot的IT技术交流和分享平台主要分管理员和用户两大功能模块,下面将详细介绍管理员和用户分别实现的功能。
3.3.1用户功能分析
用户进入本系统可查看系统信息,包括首页、笔记分享,注册登录后主要功能模块包括个人中心、笔记分享管理、笔记类型管理以及我的收藏管理,用户用例图如图3-1所示。
图3-1 用户用例图
3.3.2管理员功能分析
管理员登录后可对系统进行全面管理,管理员主要实现的功能模块包括个人中心、用户管理、笔记分享管理、笔记类型管理以及系统管理五大部分,管理员用例图如图3-3所示。
图3-2 管理员用例图
3.4 系统结构分析
3.4.1逻辑结构
基于Spring Boot的IT技术交流和分享平台的特点就是利用Browser/Server(B/S)结构,为用户提供了一个便利的IT技术交流和分享的平台,让用户只要上网就可以实现IT技术交流和分享。本系统的网络应用原理示意图如图3-3所示:
图3-3系统的网络应用原理示意图
3.4.2物理结构
系统实现的物理结构如图3-4所示:
图3-4 系统实现的物理结构图
3.5 系统流程分析
3.5.1注册流程
未有账号的用户可进行注册操作,用户注册流程图如图3-5所示。
图3-5注册信息流程图
3.5.2登录流程
登录模块主要满足了管理员和用户的权限登录,用户登录流程图如图3-6所示。
图3-6 登录流程图
4 系统设计
4.1系统概要设计
基于Spring Boot的IT技术交流和分享平台并没有使用C/S结构,而是基于网络浏览器的方式去访问服务器,进而获取需要的数据信息,这种依靠浏览器进行数据访问的模式就是现在用得比较广泛的适用于广域网并且没有网速限制要求的B/S结构,图4-1就是开发出来的程序工作原理图。
图4-1 系统工作原理图
4.2系统结构设计
系统结构设计是一个将一个庞大的任务细分为多个小的任务的过程,这些小的任务分段完成后,组合在一起形成一个完整的任务。本基于Spring Boot的IT技术交流和分享平台主要管理员模块以及用户模块两大部分,系统结构图如图4-1所示。
图4-2系统功能模块图
4.3 数据库设计
一个好的数据库可以关系到程序开发的优劣,数据库设计离不开表结构的设计,还有表与表之间的联系,以及系统开发需要设计的数据表内容等信息。在进行数据库设计期间,还是需要多花时间进行考虑,最终设计出配套程序的数据库出来。
4.3.1 数据库概念结构设计
程序设计是离不开对应数据库的设计操作的,这样的做法就是减少数据对程序的依赖性,所以数据库的设计也是需要花费大量的日常时间来进行设计的,在设计中对程序开发需要存储的数据信息进行实体划分,先确认实体,然后设计实体的属性等操作,这种设计就是数据库设计里面不能少的必须有的E-R模型设计。为了降低程序设计的对应的数据库设计难度,开发人员也可以使用相应的工具来进行E-R模型设计,现在市面上设计E-R模型的工具有PowerDesigner建模工具,Navicat制作工具,还有微软的Visio绘图工具。为了简便起见,本程序在设计E-R模型的时候,就选用了微软的Visio这款功能强大,操作便利的绘图工具。
数据库概念结构设计通俗来说就是把前面所做的需求分析报告转变为抽象的信息结构,数据库概念结构设计相比数据模型要更加稳定、抽象和独立。它的特点有方便修改、能够容易理解、转换成层次、关系等数据模型变得更加容易,对现实世界反映客观真实充分等。数据库设计这块,在描述概念模型工具的选择上通常是用E-R模型(实体-联系模型)表现出来。本基于Spring Boot的IT技术交流和分享平台的E-R图如下所示:
(1)管理员信息实体属性图如图4-4所示:
图4-4 管理员信息实体属性图
(2)用户信息实体属性图如图4-5所示:
图4-5 用户信息实体属性图
(3)笔记信息实体属性图如图4-6所示:
图4-6 笔记信息实体属性图
(4)笔记类型信息实体属性图如图4-7所示:
图4-7 笔记类型信息实体属性图
4.3.2 数据库逻辑结构设计
数据库的逻辑结构的设计需要将前面概念设计得到的E-R图转换成关系模型。接着就是优化关系模型,逻辑结构设计的过程表现如下
图4-10 逻辑结构设计的过程
优化关系模型有许多方式,这些方式包括了对数据之间的依赖进行确定;处理关系模式间的数据依赖,一些多余的联系需要及时清理;要明白和界定各个关系模式在第几范式;关系模式的分解或合并处理也是必要的。设计中对关系模型的优化就可以按照上述提示进行操作。
本次开发的基于Spring Boot的IT技术交流和分享平台它的数据结构就比较清晰明了。开发出来的基于Spring Boot的IT技术交流和分享平台的后台数据库是由许多的数据表组成的,下面我们将选取一部分数据表进行具体描述:
表4-1 users管理员信息表
字段名 | 数据类型 | 是否允许空 | 字段含义 |
id | int(11) | NOT NULL | 编号 |
username | varchar(100) | NULL | 用户名 |
password | varchar(100) | NULL | 密码 |
role | varchar(100) | NULL | 角色 |
addtime | timestamp | NULL | 新增时间 |
表4-2 yonghu用户信息表
字段名 | 数据类型 | 是否允许空 | 字段含义 |
id | bigint(20) | NOT NULL | 编号 |
addtime | timestamp | NULL | 创建时间 |
yonghuming | ` varchar(200) | NULL | 用户名 |
mima | ` varchar(200) | NULL | 密码 |
xingming | ` varchar(200) | NULL | 姓名 |
xingbie | ` varchar(200) | NULL | 性别 |
shouji | ` varchar(200) | NULL | 手机 |
youxiang | ` varchar(200) | NULL | 邮箱 |
shenfenzheng | ` varchar(200) | NULL | 身份证 |
zhaopian | ` varchar(200) | NULL | 照片 |
表4-3 bijifenxiang笔记分享信息表
字段名 | 数据类型 | 是否允许空 | 字段含义 |
id | bigint(20) | NOT NULL | 编号 |
addtime | timestamp | NULL | 创建时间 |
`bijimingcheng | ` varchar(200) | NULL | 笔记名称 |
bijileixing | ` varchar(200) | NULL | 笔记类型 |
bijibiaoti` | ` varchar(200) | NULL | 笔记标题 |
bijitupian | ` varchar(200) | NULL | 笔记图片 |
bijifujian | ` varchar(200) | NULL | 笔记附件 |
bijineirong | ` varchar(200) | NULL | 笔记内容 |
faburiqi | ` varchar(200) | NULL | 发布日期 |
yonghuming | ` varchar(200) | NULL | 用户名 |
xingming | ` varchar(200) | NULL | 姓名 |
thumbsupnum | int(11) | NULL | 赞数 |
crazilynum` | int(11) | NULL | 踩数 |
clicktime | datetime | NULL | 最近点击时间 |
clicknum | int(11) | NULL | 点击次数 |
表4-4 bijileixing笔记类型信息表
字段名 | 数据类型 | 是否允许空 | 字段含义 |
id | bigint(20) | NOT NULL | 编号 |
addtime | timestamp | NULL | 创建时间 |
leixing | varchar(50) | NULL | 类型 |
5 系统的实现
5.1 用户功能模块的实现
用户在系统前台可查看系统信息,系统前台主界面展示如图5-1所示。
图5-1系统前台主界面
5.1.1用户注册界面
没有账号的用户可进行注册操作,用户注册界面展示如图5-2所示。
图5-2用户注册界面
5.1.2用户登录界面
用户在登录界面可输入登录信息,点击登录按钮进行登录系统,用户登录界面展示如图5-3所示。
图5-3 用户登录界面
5.1.3笔记分享详情界面
用户可选择笔记分享查看详情信息,笔记分享详情界面展示如图5-4所示。
图 5-4 笔记分享详情界面
5.1.4添加笔记分享界面
用户登录后可添加笔记分享信息,添加笔记分享界面展示如图5-5所示。
图5-5 添加笔记分享界面
5.1.5我的收藏界面
用户可管理个人已有收藏笔记分享信息,我的收藏界面展示如图5-6所示。
图5-6 我的收藏界面
5.2 管理员功能模块的实现
5.2.1管理员登录界面
管理员要想进入系统后台对系统进行管理操作,必须登录系统后台,管理员登录界面展示如图5-7所示。
图5-7 管理员登录界面
5.2.2用户管理界面
管理员在用户管理急么可查看所有用户信息,并可对其进行编辑和删除操作,用户管理界面展示如图5-8所示。
图5-8 用户管理界面
5.2.3笔记类型管理界面
管理员可增删改查笔记类型信息,笔记类型管理界面展示如图5-9所示。
图5-9 笔记类型管理界面
5.2.4笔记分享管理界面
管理员可增删改查笔记分享信息,笔记分享管理界面展示如图5-10所示。
图5-10 笔记分享管理界面
6 系统测试
6.1测试目的
软件系统测试的目的是通过测试找出在程序中的存在的错误信息和阻碍程序正常运转的安全隐患。这同时也是每一个系统软件测试的主要的规定,软件系统的应用过程中,发现一个重要的错误也是极具有很大的影响力的,一个好的测试的方案就为发展程序中存在的重大问题的;同样,一个成功的测试方案也就发现了迄今为止尚未发现的一个重要错误的测试。
程序设计不能保证没有错误,这是一个开发过程,在程序运行的过程中是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果,如系统崩溃,安全信息,系统无法正常启动等,为了避免这些问题,我们需要测试程序,并发现这些问题,并纠正它们,并使系统更长时间稳定成熟,本章的作用是发现这些问题,并对其进行修改,虽然耗时费力,但长期非常重要和必要系统的开发。软件在设计后必须进行测试,调试过程中使用的方法是软件测试方法。在开发新软件时,系统测试是检查软件是否合格的关键步骤,以及是否符合设计目标的参考。测试主要是查看软件中数据的准确性,正确的操作与否,以及操作的结果,还有哪些方面需要改进。
基于Spring Boot的IT技术交流和分享平台的实现,对于系统中功能模块的实现及操作都必须通过测试进行来评判系统是否可以准确的实现。在系统正式上传和使用之前必须做的一步就是系统测试,对于测试发现的错误及时修改处理,保证系统准确无误的供给用户使用。
6.2测试原则
程序员在软件测试过程当中也是有一定的原则遵循,下面简单介绍下软件测试的原则:
(1)测试的用例部分应该包括录入的数据跟与之对应的结果输出这两方面内容
在还没有进行测试之前,我们要合理选择Test case(测试用例),测试用例它能够反映出程序员开发的程序的一些问题。所以在操作中需要记录测试中录入的数据和与之相对应的结果输出,这样的描述更能直观反映出问题
(2)程序开发人员要做到早早地进行程序测试和测试过程伴随始终。
这样做是有道理的,如果软件开发出来了,再让测试人员从头到尾进行程序测试,一是时间上面可能来不及,因为用户急着要程序产品,二是测试中一旦发现问题,修改起来也比较麻烦,通常是程序的各个文件都要相应作出修改。所以程序开发人员还是要做到一边编写程序,一边进行测试,把问题解决在早期,避免许多错误出现
(3)程序开发人员最好不要测试自己开发的程序
生活中的我们经常能够看清楚某人的优缺点,但自身的优缺点就不能看出来。所以这个道理对于程序员也适用。程序员自己开发的程序自己是检查不出来的,所以程序开发中有条件的话还是需要专门的测试人员来完成测试工作,发现出来的问题由程序编写人员修改
(4)测试用例的设计需要包含输入条件的合理性和不合理性两方面内容
程序要正常跑起来还是需要用户输入的信息要合理,不是想输入什么就行,它是有参考标准的。要是随便乱输入信息程序就没法工作运行了。一般来说,测试中输入不合理条件进行测试可以发现更多的程序错误
(5)错误群集部分需要当成重点测试
程序测试部分,遇到某些错误很多的一段程序代码,需要测试人员进行重点测试,要保证投资在测试部分的效益
(6)坚决杜绝测试工作的随意性,必须按照测试计划严格地执行
测试工作的每一项内容的测试都有相应的计划安排,我们必须严格按照要求进行测试工作。测试的相关内容、选择测试的用例是哪种、测试工作的进度如何、测试怎么进行的等内容,当然还包括测试的评价标准、怎么样跟踪测试过程的等内容,需要专门的规定,不能随便解释
(7)测试出来的任意一个结果需要全面检查
测试出来的任意一个结果再进行全面检查是对测试过程负责的表现,杜绝小错误再次出现
(8)测试结果出具的相关资料文档要认真仔细保存
系统维护上面根据系统测试报告来操作可以省去不必要的工作,测试中形成的最终分析报告和测试用例等内容是千万不要丢失的
6.3测试方法
在对系统进行测试的时候在找到问题的情况下必须在第一时间找到解决问题的办法,不要存在侥幸的心理,这样才能让系统开发的质量有所保证,并且开发的周期会大大缩短;还有就是在测试时,不要出现重复性的错误,遇到一个错误问题,要将整个系统开发所牵扯的该问题都必须一一解决,提高系统的安全性、稳定性。
白盒测试与黑盒测试是测试中比较常用的两种方法。
①结构测试俗称白盒测试:通常把程序测试的对象当做打开的能看见的盒子就属于白盒测试方法,白盒测试能够反映出来程序的内部是如何工作的,利用这个办法可以检测出来我们开发的程序是不是按照说明文档的描述进行工作的,可以看出程序的任何通路是不是能够按照预定的要求正确进行的。软件验证还是用白盒测试比较有效,像基路测试以及逻辑驱动采用白盒测试也是很有效的方法。Jcontract、C++ Test和CodeWizard等工具就是白盒测试常用工具。这种测试是在对程序的处理过程与结构都有详尽谅解的前提下,顺从程序内部的逻辑而完成的系统测试,以确定系统中所有的通路都能够遵照设计要求正常工作,不出现任何偏差。
②功能测试又成黑盒测试:主要是针对程序功能能够按照设计正常实现的一种检测,在程序接口处进行,检测程序手法数据是否正常,与外部信息的交换是否完整。黑盒测试就跟白盒测试的内容不一样,它还是注重软件的规格,不需要知道软件内部是如何进行工作的,这样的测试让软件使用者觉得程序工作过程是不透明不清楚的,感觉就像是一个黑盒子。测试过程中始终站在用户的角度使用软件,发现软件存在什么缺点,不是注重程序是怎么实现的测试方法。AutoRunner和winrunner是黑盒测试需要用到的常用工具。
6.4测试结论
经过测试,系统所有功能都能得以实现,没有任何变形。至此,在功能的测试上也已经比较圆满的完成了。本基于Spring Boot的IT技术交流和分享平台满足用户的要求和需求。所有基本功能齐全,操作简单,系统运行性能良好,是一个值得推广的IT技术交流和分享系统。
7 总结
在这次的毕业设计当中,让我把课堂上学到的知识全部学以致用,让我对网站的设计和开发有了更加深入的理解,对数据库的运用也更加的灵活,不在局限于书本上的知识,以下几点是我本次毕业设计的体会:
(1)在编辑代码的时候一定要注意写注释,因为你一篇代码写下来,写的多了,有可能回头就忘了这段代码主要是用来做什么的,还有编写的代码一定要注意规范书写,不然当你写完的时候你回头一看会让你眼睛疲惫,让你无法静下心来编写。
(2)这次的毕业设计能成功的实现出来,主要是归功于互联网的功劳,由于我编程基础比较薄弱所以我选择了相对简单的Java技术加上我比较擅长的数据库操作来实现这次的毕业设计,主要从腾讯课堂、慕课、W3c等编程教学网站吸取经验,通过案例的编程练习来强化自身的编码能力。
(3)这次的网页设计比较的简洁明了,主要是因为前端的知识没有好好的掌握,只掌握了基础的部分,没有的很好的运用到前端的高级技巧,只是由基础的代码组成,虽然页面不太美观,但是由于简洁的设计,也可以让用户很方便的找寻到自己所需要的功能,所以这一步还是需要进一步的完善。
(4)编好代码后,为了不让用户有错误的体验,肯定少不了测试,在测试功能的时候,我们要把自身当成一个用户去体验,而不是当一个制作者的角度去看待,这样才有更好的测试效果。
最后感谢这次的毕业设计,让我能灵活的把课本上的知识结合起来运用,虽然还是有很多不懂的地方,但也提升了我的动手能力,让我对网站的建设有了大致的了解,让我明白了,也许开始的时候我只是个网站设计的小白,但通过不断的学习,不断的努力,我也能入门,世上无难事,只要肯努力,一切皆有可能
参考文献
[1]数据库设计在网站开发中的应用[J]. 王建国. 山东农业工程学院学报. 2017(04)
[2]网站开发技术比较分析[J]. 王传建. 电脑迷. 2017(06)
[3]基于互动网站开发技术的留言板系统的设计与实现[J]. 鲍平平. 电脑与信息技术. 2016(06)
[4]张红梅,王磊.在JSP中访问数据库的方法[J].实验科学与技术,2006(08).
[5]靳其兵,李晓波.基于JSP的数据库连接技术的研究[J].计算机仿真 2007(04) .
[6]孙东卫,张冀红,李声利. 数据库访问技术研究[J].现代电子技术.2002,18(5).20-34.
[7]苟凌怡,魏生民. MYSQL中索引的有效选取[J].计算机工程与应用,1999,35(6):70-71.
[8]张树亮, 李超.JSP+MYSQL网络应用系统开发案例精解[M].北京:清华大学出版社,2006.
[9]G.E.Hobona, S.J.Abele, Philip James[J].University of Newcastle upon Tyne, 2006.
[10]张宁,吴捷,杨卓,张涛. 基于MYSQL的脑电数据库的构建[J]. 广西科学院学报 ,2006 22(4):275-278.
[11]常用网站开发技术比较[J]. 张研. 发展. 2013(04)
[12]宋连友.企业信息化建设中的几个关键问题[J].中国商贸.2011,06.85-86.
[13]Quintero,A.O.Research on application information system integration platform in medicine manufacturing enterprise.[J]. International Journal of the Commons,2010(1):23-40.
[14]百度百科.j2EE.http://baike.baidu.com/view/1507.htm[EB/OL].2012.11.21.
[15]小聪.j2EE的优势.http://www.mailwhy.com/yjfwq/J_M/941.html [EB/OL].2009.3.24.
[16]周观民,刘书伦等.用Java实现多线程程序设计[J].计算机时代,2006(7):61-63 .
[17]G.E.Hobona,S.J.Abele,PhilipJames[J].University of Newcastle upon Tyne, 2006.
[18]网站开发项目的需求分析[J]. 张东升. 产业与科技论坛. 2012(18)
致 谢
在这即将毕业的时候,我要感谢陪伴我4年的舍友们长期以来对我的照顾,还记得当初来学校时,大家一起去疯、一起去浪的身影,虽然之后的我们即将各奔东西,朝着自己的梦想不断的前进,但别忘了,我们曾经一起走过的这段路,那一张张笑脸,那一声声的欢笑声,那偶尔争吵而过的身影,这些将成为我们最为美好的回忆。我还要感谢我们专业的所有同学,是他们让我学会了成长,是他们让我学会了担当。我还要我们的辅导员教师,是她一次次纠正我所犯的错误,让我改掉了粗心大意的毛病,最后我还要感谢传授我知识,陪伴我4年成长的教师们,是他们带我进入了计算机的世界,是他们教会了我正确的价值观,人生观。
这次的毕业设计和论文,让我学会了很多,也让我成长了很多。蓦然回首,那一幕幕学习的场景在我眼前浮现,突然觉得自己的充实了很多,我的大学生涯已经无憾了,我用我的设计和论文给我的大学生涯划下了一个完美的终点。
有个人,在我遇到困难的时候一直帮着我,鼓励着我,当我徘徊在IT界大门前的时候是她给了我钥匙,让我打开了这扇大门,让我完成了这次的毕业设计,是的,那人就是我的导师,由于我的网站设计很多是跟数据库相关的内容,而我的导师又是这方面的高手,当我遇到困难时,她总是能找到我错误的地方,第一时间教导我该如何去编写,没有她,我的毕设不可能如此顺利的完成,谢谢您。
未来的路很长,不管我们将来走向何方,我都不会忘记,那些在我背后曾支持我,鼓励我,在我遇到困难的时候帮助我的身影。
核心代码展示
/**
* 公告通知
* 后端接口
* @author
* @email
* @date 2021-03-09 11:33:59
*/
@RestController
@RequestMapping("/news")
public class NewsController {
@Autowired
private NewsService newsService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( NewsEntity news){
EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
ew.allEq(MPUtil.allEQMapPre( news, "news"));
return R.ok().put("data", newsService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(NewsEntity news){
EntityWrapper< NewsEntity> ew = new EntityWrapper< NewsEntity>();
ew.allEq(MPUtil.allEQMapPre( news, "news"));
NewsView newsView = newsService.selectView(ew);
return R.ok("查询公告通知成功").put("data", newsView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
NewsEntity news = newsService.selectById(id);
return R.ok().put("data", news);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
NewsEntity news = newsService.selectById(id);
return R.ok().put("data", news);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody NewsEntity news, HttpServletRequest request){
news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(news);
newsService.insert(news);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody NewsEntity news, HttpServletRequest request){
news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(news);
newsService.insert(news);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody NewsEntity news, HttpServletRequest request){
//ValidatorUtils.validateEntity(news);
newsService.updateById(news);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
newsService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 提醒接口
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map<String, Object> map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper<NewsEntity> wrapper = new EntityWrapper<NewsEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = newsService.selectCount(wrapper);
return R.ok().put("count", count);
}
}
原文地址:https://blog.csdn.net/qq_31194371/article/details/143210692
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!