---文档均为word文档,下载后可直接编辑使用亦可打印---
摘要
义务教育的普及,使得人们的文化水平越来也高,大学生的人数
也越来越多,因为很多针对大学生需求的app,网站应运而生。很多学生为了减轻家庭的负担,都会选择谋取一些个人技能来赚取他们应得的报酬,但是苦于缺乏资源,很多人都无法找到雇主。因此英雄无用武之地。在这个方面,很多人都会去寻求一个能进行信息互享的平台去寻找自己想要的信息。大学生兼职网就是针对这个现象而开设的一个网站。
用户可以登录本网站去发布,或者去检索与自己技能相关的一个兼职。术业有专攻,专业的事情交给专业的人做,这将事半功倍。亦或你有工作,他有时间,那么,两者便能形成交易。通过本系统,我们将搭建一个雇主与雇员之间的合作平台,更主要的是一个信息共享专业平台。通过模块的分类,兼职职位的特点,针对个人的特征去匹配相对应的职位,扩大彼此的交际圈,解决找人难,找工作难的主要矛盾点。
B/S结构作为本系统的架构模式,Java语言作为后台服务支撑开发语言,SpringBoot作为一站式解决方案框架,智能化IDE工具Idea,简单实用的Mysql数据库作为存储系统,Thymleaf为页面渲染模板引擎,搭配LayUi为后台静态页面框架,ajax实现局部刷新功能技术,页面美观舒适,快速入门,交互能力强,层次清晰分明,便于维护。
关键词: springboot mysql LayUI Jquery Ajax
Abstract
With the popularization of compulsory education, people's cultural level is getting higher and higher, and the number of college students is also increasing. Because of many apps for college students' needs, websites emerge as the times require. In order to lighten the burden of the family, many students will choose to seek some personal skills to earn their deserved remuneration, but due to the lack of resources, many people are unable to find employers. So heroes have no place. In this respect, many people will seek a platform for information sharing to find the information they want. College students part-time network is a website for this phenomenon.
There is a specialty in the art industry, and the professional things are handed over to the professional people, which will double the result with half the effort. Or if you have a job and he has time, then a deal can be made between the two. Through this system, we will build a cooperation platform between employers and employees, and more importantly, an information sharing professional platform.Matching the corresponding positions according to the characteristics of individuals, expanding their communication circle, and solving the main contradictions of finding people and jobs.
B / S structure is the architecture mode of the system, Java language is the backstage service support development language, spring boot is the one-stop solution framework, intelligent ide tool idea, simple and practical MySQL database is the storage system, thymelaf is the page rendering template engine, and layui is the backstage static page framework. Ajax realizes the local refresh function technology, making the page beautiful and comfortable,maintain.
Keywords: springboot mysql LayUI Jquery Ajax
目录
第一章 课题背景与现状.................................... 1
1.1 选题背景 ....................................................................................................................... 1 1.2 课题研究现状 ............................................................................................................... 1 1.3 设计方法与研究方案 ................................................................................................... 2 1.4 研究内容 ....................................................................................................................... 2
第二章 系统环境介绍 ..................................... 3
2.1 MVC模式 ........................................................................................................................ 3 2.2 B/S结构 ........................................................................................................................ 4 2.3 Java ............................................................................................................................... 4 2.4 开发框架介绍 ............................................................................................................... 5 2.4.1 springboot框架 .................................................................................................. 5 2.4.2 LayUI框架 ............................................................................................................ 5 2.4.3 Jquery库 .............................................................................................................. 6 2.5 开发工具介绍 ............................................................................................................... 6 2.5.1 WebStorm ............................................................................................................... 6
2.6 系统运行环境介绍 ....................................................................................................... 6
第三章 系统的分析和设计 .................................. 8
3.1 系统分析 ....................................................................................................................... 8 3.1.1 经济可行性分析 ................................................................................................... 8 3.1.2 技术可行性分析 ................................................................................................... 8 3.1.3 运行可行性分析 ................................................................................................... 9 3.2 系统设计 ....................................................................................................................... 9 3.2.1 系统需求设计 ....................................................................................................... 9 3.2.2 数据库设计 ......................................................................................................... 10 3.3 网络现状分析 ............................................................................................................. 15
第四章 系统的实现 ...................................... 17
4.1 后台模块设计 ............................................................................................................. 17
4.1.1 企业管理 ............................................................................................................. 17 4.1.2 公告管理功能 ..................................................................................................... 17 4.1.3 留言管理 ............................................................................................................. 17 4.1.4 个人信息修改 ..................................................................................................... 19 4.2 前台网站模块设计 ..................................................................................................... 20 4.2.1首页 ...................................................................................................................... 20 4.2.2 首页职位搜索 ..................................................................................................... 26 4.2.3 留言功能 ............................................................................................................. 27 4.2.4 人才模块 ............................................................................................................. 29
第五章 系统测试 ........................................ 25
5.1 功能测试 ..................................................................................................................... 25 5.2 可用性测试 ................................................................................................................. 26 5.3 系统用例测试 ............................................................................................................. 26 5.4 性能测试 ..................................................................................................................... 27 5.5 测试结果分析 ............................................................................................................. 27
结论 ................................................... 28 参考文献 ............................................... 37
致 谢 ................................................. 38
第一章 课题背景与现状
1.1 选题背景
自从高考制度的产生,我国学生知识水平逐渐高等化,大学创办基数越来越大,人才接纳数量也越来越庞大。根据统计,每年大学生的入学基数已达到百万级,显而易见,大量的求职需求将难以满足。在信息化时代,根本很难像传统一样去一家一家求职,询问岗位要求,找工作越来越难,人才的个人信息难以被企业或者雇主及时知晓,而招聘信息也无法立即让学生们所查阅。因此,求职使得成为当今社会一大重大问题。我们应该利用高科技去解决这个问题,让供需平衡点不再困难。
另外一方面,企业只会在他们力所能及的地方张贴广告,利用了网络的传播性与广泛性,我们基于方便大学生与企业之间形成的雇主雇员关系,推出大学生兼职网,是完全有必要的,并且基于当前形势下,学生们可以花费最短的时间去得到最为广泛的兼职信息,而企业也能够查阅到相应职位所匹配的人才,这种供需关系的匹配势必会得到学生们的追捧,雇主们的大力支持。
1.2 课题研究现状
在古代,兼职这种模式就已经存在,雇主们不必与他人形成长期的雇佣劳动关系,而能够在短期内完成自己想要的事情,而劳动者则能在自己的空闲时间通过劳动去获得额外的一份报酬,这是一种很普遍存在的一种交易模式。
但是,随着网络的普及,科技的兴起,人们为了追求便利性,开始形成网络兼职这一种模式,网络发布兼职信息,打破了以往的模式框架,超出了传统业务的局限性。它的低廉性,易用性,效果显著等等特性得到了很多人的追捧,形成了一种全新的信息发布模式。这是科技社会的一种跃进,更是一种生产力进步的标志。
目前,大学生在为了解决自己的生活经济需要的时候,都会选择谋取一份兼职去换取相应的金钱报酬。而网络搜寻兼职信息成为了他们的首选目标,根据市场调查,学生们在搜索信息时,网络搜索达到了90%,而企业为了解决成本,85%也会去选择发布网络兼职信息。因此,提供一个企业与学生们联系的平台势在必 行。因为我们可以看见,网络兼职将成为以后的兼职模式趋势。
1.3 设计方法与研究方案
本系统采用B/S架构模式,可以让用户通过网络设备,如手机,电脑等使用浏览器访问到该网站,下面是它的一些主要开发框架以及开发工具。
操作系统:Windows 10 开发工具:IntelliJ IDEA 程序语言:Java + Html + Css 关系型数据库:MySql 数据库可视化工具: SqlYog
采用框架技术:SpringBoot框架 + MyBatis Plus + LayUi + Jquery 运行环境: CentOS 7
1.4 研究内容
本论文通过剖析论题背景,分析出该论题的研究意义,结合目前相应的开发技术,对项目进行相应的评估,得出项目的执行成功度,最后进行论题的实践,具体设计方面介绍本兼职网的落地实现设计。
另外,我们还会对网站的运行时环境进行介绍,分析系统的模块化功能,数据库的具体表设计,数据字典含义,最后进行回归测试,让系统完整落地运行。
最后,我们通过整个项目的回想、分析、反省、剖析整个项目的不足之处以及未来的改进之处,放眼未来。
第二章 系统环境介绍
2.1 MVC模式
数据层Model,视图层View,控制层Controller,这三个英文单词的首个字母缩写,称之为MVC模式。那么接下来,我们来对MVC模式进行解释。
MVC模式,我们可以将它解释成“外观”,“机制”,“功能/数据”这三层结构。那么具体是什么意思呢,我们举个实际例子进行阐述:倘若家里的一个微波炉,那么我们将它映射到我们现在的MVC模式的话,那么他的外观层,内置转盘等就可以称之为我们的View层,而微波炉的微波产生机制也就是我们的数据层,传输的热能,电能都是供我们去使用的数据,而对这些数据产生加热的做功操作,也就是我们的核心控制器,而且这种机制广泛应用在我们的很多事物中,而且非常实用。在Web开发中,这种架构模式更加常用,因为他的强大之处在于他的每一层都是独立的,我们可以在不更改他的外观上对他进行内置操作的更换,比如更换一个内在功率更大的微波产生器。反应在我们的Web开发上的话,我们不难得出,实体类即是我们的数据层,View层也是我们的可视化层,呈现给用户展示的界面,而控制器便是我们整套系统最为核心的逻辑层,负责数据的组装以及转发等功能。该流程可用图2-1表示。
图2-1 控制器流程图
2.2 B/S结构
B/S架构,Brower/Server模式,也即是浏览器/服务器模式,这是一种自从1996年后,互联网时代崛起而兴起的一种新型用户可视化交互模式。这其实也是一种特殊的C/S模式,而相应的客户端被浏览器取而代之,而由于浏览器的特殊性,使得用户对客户端的依赖性极小,不再需要安装一对一的客户端,只需要任何能浏览网络的浏览器即可。
B/S模式的好处,是在于它统一了用户对客户端的依赖性,开发者可以集中精力放在服务端的研发中,所有系统核心功能都集中到服务器中,简化了系统的
研发流程,使用与维护成本,同时,也不缺失传统C/S的功能,他同样也能在Web上与数据库等进行数据交互。
在这里,我们简单描述下B/S架构的简单工作流程,首先,用户在浏览器上的Url地址栏上键入目标服务器的地址,或者是通过开发者为用户提供的页面表单进行数据交互,用户提交表单,将数据用Get或Post请求发送到服务器上,然后服务器接收到请求,对数据进行处理,并将对请求产生回应,服务器的逻辑处理完毕后,再藉由Controller层对数据与页面进行结合渲染,响应给客户端。
总结上面的,我们可以知道,B/S架构下的应用具有分布式应用的特点,他可以随时随地地去查阅,去执行我们的业务;第二,他的扩展性也很强,升级功能,客户端并不需要重新安装升级,我们只需要重心放在服务端即可,同时,维护起来也很方便,由于具有客户端统一性的特点,只需要升级客户端,即可实现所有用户都统一升级更新。另外,由于服务端部署于云端,我们也不再需要顾及丢失或者可移动性数据的不便捷。所以B/S架构是最符合我们设计的架构模式。
2.3 Java
Java语言,自1995年开始诞生,由Sun公司推出的一款面向对象的开发语言。Java分为三种体系,JavaSE,JavaEE,JaveME,而我们本次选择的为JavaEE体系。
Java是基于面向对象的思想体系进行开发的,丢弃了很多C语言或者C++语言中很难理解的指针等概念,并非常友好地为程序员们解决了垃圾回收的问题,这使得Java十分易学。另外,Java也具有可移植性好的特性,只要你安装了Java的运行环境,你就可以将你的Java应用运行在任何系统上,这使得程序员不必
再针对于系统重新开发个新版本,极大程度上缩小了开发量。另外,Java也具有高性能这个特点,随着JIT编译器的技术发展,使得Java的性能越来越接近与C++语言。Java设计目标其一也是为了适应动态变化的环境,而Java也恰好满足这个条件,Java能够进行运行时刻的类型检查,能够动态地加载Java类到运行环境中。因此,我们本次的开发语言选择Java来支撑我们的业务结构。
2.4开发框架介绍
2.4.1 springboot框架
作为一个Java开发者,我相信大家都听过SSH框架,SSM框架,但是这些整合框架都有一个让开发者很头疼的缺点,那就是需要配置很多繁琐的配置文件才能运行起Web应用,开发者浪费太多精力在这些重复劳动上,而为了解决这个痛点,Spring团队旨在“约定大于配置”这个观点,推出了一个一站式方案———SpringBoot框架。这个框架解放了开发者的劳动双手,从繁多的配置文件的泥沼中脱离了出来,搭建强大的Maven技术管理工程,只需要一个主函数入口,即可启动Web应用,这是开发者的福利。
另外,Spring团队还为开发者带来了一个搭建神器,那就是spring initializr启动器,这是一个可定制化的搭建神器,开发者根据自己的需要进行搭建开发环境。另外,SpringBoot环境还为我们内置了Tomcat服务器,我们无需再关注外在的服务器容器,即可直接运行Web应用。
同时,我们还可以将应用打包成jar包,在Java环境即可通过脚本命令启动应用。SpringBoot框架给我们带来了许多便利,因此本次开发采用SpringBoot框架作为我们的开发框架。
2.4.2 LayUI框架
LayUI是一款结合自身开发规范编写了一套适配多个前端界面的UI框架,他使用的是原生HTML,CSS,Js的原始组织模式,即拿即用的理念满足了大部分UI界面的使用,它的外面精简美观,体积轻盈,组件丰富,非常适合界面的快速便捷开发。而且,这款框架的学习成本比较低,只要掌握传统前端开发三大件,就能掌握该框架使用,这极大地缩短了我们对框架使用的了解时间以及上手使用
时间成本。LayUi这款框架也是开源免费地,并且有专业的论坛去维护它,在使用过程中遇到什么问题都可以去论坛寻找帮助。这对于我们的设计有着极大的优势,因此,我们采用LayUi作为我们的前端界面开发框架是很合适的。
2.4.3 Jquery库
Jquery技术就是将Js技术进行多一层的包装,形成一个Js库,开发者可以调用里面的函数去使用Js技术,换句话说,JQuery也是一个简化语法的Js,代码简洁了,可读性以及维护也更加强壮方便了。它倡导“写得少,做的多”的
理念深入人心,同时能够在代码量减少的情况下,优化Dom操作,增强事件操作和局部刷新技术Ajax的交互。简单说,Jquery也就是升级版的javaScript,另外它还兼容各种主流浏览器,因此我们选择Jquery也是当之无愧的首选。
2.5 开发工具介绍
2.5.1 WebStorm
在进行前端页面开发时,我们使用WebStorm这款JavaScript开发工具。因为目前业界上,广大的Js开发者将它称之为“Web前端开发神器”,“最智能的前端IDE工具”等等,这些殊名并非空穴来风,而是真正来自他的强大。
WebStorm的优势用一个词语来概括的话,那么就是智能。你会发现它会对业务最新技术的支持是非常及时的,而且快捷键的丰富让你爱不释手,你还可以自定义代码格式化的规范。他的过人之处还有自动代码补全,智能提示,Css重构等等许多强大功能,这对于开发者来说,就宛如拧螺丝多了电转头等,效率得到了极大的提高。
而且,WebStorm还可以与其他版本控制软件进行整合,基本上负责了整套开发中的所有流程,因此我们必须要善用它来提高我们的效率。
2.5.2 Navicat
Navicat,一套能够快速连接Db数据库的管理工具。换句话说,他是一款支持Mysql,Oraacle,PLSQL多种数据库的可视化管理工具,专门辅助开发人员进简化数据库操作和管理成本的合格软件。满足各大开发者以及中小企业的需求,它能够将用户的操作转换为相应的Sql语言去执行,屏蔽了用户直接执行Sql,比如建表,删表,添加数据库等操作,都可以用它来完成。让你以一种安全,简单的管理方式去使用你的数据库。同时,Navicat还开发出了多语言版本,全世界的开发者都可以去使用它。由于他的独特性,在全世界范围得到了广泛的推广并且使用。目前也被公认为最受欢迎最好用的用户管理工具之一。
2.5.3 Tomcat
·运行Web应用,必须要通过服务器作为中间介质作为环境载体运行它, 而根据市面上流行的服务器,如Tomcat,Resin,JBoss,WebLogic等服务器,这
些服务器各有优缺点,但是应用领域各有长短,根据分析,我们得出Tomcat是最适合我们当前项目运行环境,现在下面解释他的一些特点。
Tomcat是以轻量强悍的特点著称的服务器,一个服务器的内存占用量仅需要10MB左右,他可以运行JSP与Servlet技术的服务器。在SpringBoot框架中也内置了Tomcat服务器,这可得知Tomcat是在全球范围内广泛使用的Web服务器。
另外,Tomcat还支持我们去自定义他的一些配置项,比如负载均衡,端口连接数,端口号等等一些常用配置项,还可以直接连接数据库。由于他能处理动态请求,非常适合我们JavaWeb应用的一个运行时环境。
2.5.4 Idea
Idea是一款用于可以用作多种开发语言的开发工具,他同样是jetbrains公司旗下产品。是一款以严谨著称的雅典程序员开发的。Idea工具提倡的是智能化,人性化,所以他推出了很多专门为程序员辅助开发的功能,比如代码提示功能,自动补全功能,代码重构,AI代码等,不仅如此,他还整合了许多开发时需要用到的工具,如Git,Svn,Maven等等,在Gui设计上也是富有人性化,提供了多套主题。为了减少程序员的工作,他还有丰富的导航模式,编码辅助,辅助排版,代码检测,对Jsp,Xml的完美支持等。
综上所述,我们此次选取的开发工具为Idea,而不是Eclipse。
2.6 系统运行环境介绍
运行环境:Windows 10 Jdk1.8
Mysql社区版5.7 Tomcat8.0
第三章 系统的分析和设计
3.1 系统分析
3.1.1 经济可行性分析
通过我们对项目的经济效益分析,我们本次项目为毕业设计,并不产生
任何费用去支持我们的项目。主要运行环境只要有电脑即可,而目前的社会体系我们可以知道,基本上所有大学生都配备了一台笔记本电脑,用我们当前的电脑作为运行载体已经绰绰有余,Web服务器选择开源服务器Tomcat,而Mysql社区版等均为免费软件,故本此项目研究不需要考虑经济费用,具有经济可行性。
3.1.2 技术可行性分析
根据当前的互联网发展来看,本次系统完全具有技术可行性。下面开始从
几个方面进行分析,其一,Java具有跨平台性,Java分为三个版本,而我们此次选择的是JavaEE体系,是完全具有研发技术条件的,能完美适配Web动态环境。其二,在技术层面来讲,我们采用的是SpringBoot一站式解决框架,无须进行多余的代码量开发,即可运行在Web环境下,我们只需要往该框架进行业务逻辑的增加即可,因此保证了此次项目的基本运行。其三,在持久化层,我们采用的是Mybatis Plus框架,这是一款在Mybatis框架上进行升级的持久化框架,从而解决我们对于数据存储方面的技术难题。其四,搭配Thymeleaf模板渲染引擎,这是一款跟Jsp技术类似的模板引擎,但是他比JSP更加容易上手,而且他的后缀名为.html,这就证明了他并不需要借用Tomcat等服务器进行渲染而可以直接在浏览器上运行。综上所述,我们只要搭配JavaWeb技术,既可以开发出本系统。
3.1.3 运行可行性分析
根据市面上的电脑,目前的配置都是运行内存4G以上,存储容量在500G左右,而我们的JavaWeb项目根据用不到这么多的资源,另外,只要我们的电脑安装了JRE环境,我们即可运行我们的项目。另外,springboot框架内置了Tomcat服务器,我们只需要在Java环境下,用脚本命令即可启动我们的服务器应用。因此,我们的项目也具有运行可行性。
综上所述,我们系统同时满足了经济可行性,技术可行性以及运行可行性,是一个可以进行系统设计的项目。
3.2 系统设计
3.2.1 系统需求设计
本系统分为兼职网前台与管理系统后台两大区域模块,兼职网前台是供学生用户进行兼职信息浏览使用,后台开放了两大角色使用,一个是系统管理员,另外一个是企业用户。学生用户可以在网站前台查看信息,以及对兼职留言,企业用户可以在后台发布兼职信息和查看学生人才信息,而管理员则拥有系统的所有权限。比如对企业用户的增删改查,对兼职信息的增删改查,对网站公告栏的增删改查以及对学生的管理等。可以查看3.2.1图
可查 看兼 职网 公告 图3.2.1 系统图
前台 后台 大学生兼职网 可在兼职网上留言言可在人才板留公告管理人才管理兼职信息管理管理员企业用户 用户管理兼职信息管理查找人才
3.2.2 数据库设计
数据库的设计是非常严谨的,所以我们在进行表设计之前一定要明确我们的开发规范以及设计规范:
1)命名规范:Java中的实体类命名规则有驼峰式,那么其实数据库字段名义也有相应的规范。当实体类用驼峰式表示时,我们数据库字段应该用下划线“_”去分割两个语义单词,举个例子,userName为实体类的名称时,我们数据库字段的定义应该为“user_name”,这是为了让语义更加明确所定义的一种规范,另外,我们在设计表字段时,一定要严格按照语义进行翻译后,进行命名,不可出现中式英文等拙劣命名,做到见名知义,否则这将在极大程度上降低数据库字段的可读性,提高了维护成本。第二,我们在命名时,一定要避免使用关键字或者保留字。众所周知,Java或者Mysql在为了以后的发展中,保留了某些字段,这就代表了我们在命名时,应当尽量避免使用它们,否则会在开发过程中遇到各种各样的奇怪问题。最后,在命名的时候,应该尽量保持精简的特点,不适用过长字段,不超过32个字符。
2)表规范:模块化建表,是目前最为常见的一种建表规范。因此,我们在建表的时候,应当根据实际先区分好模块化,如管理员表admin,公告表bulletin等,另外,数据表不可以存储过多字段,因为单表字段存储数量过多,会影响索引查询,导致查询性能不好,当系统功能有多模块时,为了使得表名看起来更见名知意,可以使用模块名作为前缀。
3)字段规范:字段类型规范是指的长度字段类型限制,例如当字段值只有1和0值,不需要使用int类型的长度(11)这样的长度,因为它会浪费Mysql数据库的内存空间,此外,适当的类型使用适当的单位设置,也不应该使用varchar类型来存储任何东西,其次,当有一些字段类型不能为空,必须添加非空这个限制条件。这个领域是规范性。
4)索引规范:索引是优化加快搜索的利器,此外,索引也用于防止脏数据和其他重要的作用,例如作为主键ID增量的插入,我们应该在一个添加索引唯一性的,这样并发情况下,数据库将会为我们加锁,保证数据的正确,而不是让程序插入的脏数据。
系统数据库有九张表admin, bulletin, enterprise, follow, job_category, job_wanted,jobs,message_board,student 如下表,admin表是一张用来存储管理员信息的表,
表3.2.2-1 admin表
名称
类型 大小 允许为空 备注
Id user_name password nick_name email mobile create_time update_time create_by update_by deleted Int varchar varchar varchar varchar varchar datetime datetime varchar varchar Int 11 255 255 255 255 255 0 0 255 255 1 不允许 允许 不允许 允许 允许 允许 不允许 不允许 不允许 允许 不允许 主键 姓名 密码 昵称 邮箱 手机号码 创建时间 更新时间 创建人 更新人 是否被删除 0-未被删除 1-被删除
下表是公告信息的维护信息表,主要用来存储公告信息用
表3.2.2-2 Bulletin表
名称 Id title create_time update_time create_by update_by deleted 类型 Int varchar datetime datetime varchar varchar Int 大小 11 20 0 0 255 255 1 允许为空 不允许 不允许 不允许 不允许 不允许 允许 不允许 备注 主键 标题 创建时间 更新时间 创建人 更新人 是否被删除 0-未被删除 1-被删除 内容 0 禁用 1-启用 副标题 content status sub_title
varchar Int varchar 255 1 255 不允许 不允许 允许 下表是企业用户表,负责存储企业用户的信息,权限区分于学生与管理员。
表3.2.2-3 enterprise表
名称 Id user_name password nick_name email mobile create_time
类型 Int varchar varchar varchar varchar varchar datetime 大小 11 255 255 255 255 255 0 允许为空 不允许 允许 不允许 允许 允许 允许 不允许 备注 主键 姓名 密码 昵称 邮箱 手机号码 创建时间
update_time create_by update_by deleted status datetime varchar varchar Int Int 0 255 255 1 1 不允许 不允许 允许 不允许 不允许 更新时间 创建人 更新人 是否被删除 0-未被删除 1-被删除 启用与停用 1-启用 0-停用
表3.2.2-4 follow表
这张表是关注表,记录学生用户关注了哪些企业信息所用 名称 Id create_time update_time create_by update_by deleted 类型 Int datetime datetime varchar varchar Int 大小 11 0 0 255 255 1 允许为空 备注 不允许 不允许 不允许 不允许 允许 不允许 主键 创建时间 更新时间 创建人 更新人 是否被删除 0-未被删除 1-被删除 学生Id 企业Id student_id enterprise_id
Int int 11 11 不允许 不允许 job_category,求职分类表,记录求职分类信息表,是用来区分求职信息分类的模块表。
表3.2.2-5 job_category表
名称 Id create_time update_time create_by update_by deleted 类型 Int datetime datetime varchar varchar Int 大小 11 0 0 255 255 1 允许为空 备注 不允许 不允许 不允许 不允许 允许 不允许 主键 创建时间 更新时间 创建人 更新人 是否被删除 0-未被删除 1-被删除 名称 name
varchar 255 不允许 Job_wanted,求职关注表,存储用户感兴趣的求职信息用,是一张中间表。
表3.2.2-6 Job_wanted表
名称
类型 大小 允许为空 备注
Id create_time update_time create_by update_by deleted Int datetime datetime varchar varchar Int 11 0 0 255 255 1 不允许 不允许 不允许 不允许 允许 不允许 主键 创建时间 更新时间 创建人 更新人 是否被删除 0-未被删除 1-被删除 学生Id 求职信息Id Student_id Job_id
int int 11 11 不允许 不允许 Jobs表,本系统的核心表之一,用于存储企业发布兼职信息所用,通过此表,可以查询到系统中存储的所有兼职信息
表3.2.2-7 Jobs表
名称 Id create_time update_time create_by update_by deleted 类型 Int datetime datetime varchar varchar Int 大小 11 0 0 255 255 1 允许为空 备注 不允许 不允许 不允许 不允许 允许 不允许 主键 创建时间 更新时间 创建人 更新人 是否被删除 0-未被删除 1-被删除 学生Id 求职信息Id 副标题 招聘人数 工资 要求 启用与停用 1-启用 0-停用 category_id title subtitile need_num salary requirement status int int varchar int decimal varchar Int 11 11 255 11 10 255 1 不允许 不允许 允许 不允许 不允许 允许 不允许 Message_board表,这个表是为了提供学生留言而用,存储留言板信息。
表3.2.2-8 Message_board表
名称 Id create_time update_time create_by update_by
类型 Int datetime datetime varchar varchar 大小 11 0 0 255 255 允许为空 备注 不允许 不允许 不允许 不允许 允许 主键 创建时间 更新时间 创建人 更新人
deleted Int 1 不允许 是否被删除 0-未被删除 1-被删除 内容 留言者Id 0 - 管理员 1-学生 2-企业用户 求职文章Id 启用与停用 1-启用 0-停用 content userId type varchar int int 255 11 11 不允许 不允许 不允许 jobsId status int Int 11 1 不允许 不允许
Student表,我们可知道这是一张学生表,用于存储求职者的信息的表,通俗讲,也是通过网站前台进行注册登录的用户。
表3.2.2-9 Student表
名称 Id user_name password nick_name email mobile create_time update_time create_by update_by deleted status 类型 Int varchar varchar varchar varchar varchar datetime datetime varchar varchar Int Int 大小 11 255 255 255 255 255 0 0 255 255 1 1
允许为空 不允许 允许 不允许 允许 允许 允许 不允许 不允许 不允许 允许 不允许 不允许 备注 主键 姓名 密码 昵称 邮箱 手机号码 创建时间 更新时间 创建人 更新人 是否被删除 0-未被删除 1-被删除 启用与停用 1-启用 0-停用 3.3 网络现状分析
由于我国的大学生人数基数较大,一般一所大学每年的学生容量都在五六万左右,因此这对于数据库的存储量有着较大的考验,因此我们做出如下分析:
1. 通过解密算法将信息加密处理存储
由于系统是基于在公开服务器网上运行,大批量的学生会进行注册,因此我们应该对他们的信息进行安全加密存储,避免出现信息泄露的时候信息遗漏。提升安全等级,是一种改进策略。 2. 利用分流软件分发请求流量
当请求量过大时,由于服务器无法承载大批量的数据请求,会导致数服务器崩溃,所以我们应该合理分配请求资源,提高系统的可用性。Nginx服务器是我们的首选措施。因为Nginx的占用资源较小,但是性能强大,所以我们可以利用Nginx来为我们的服务器做负载均衡。 3. 使用Redis缓存
由于系统的特点,数据库需要承受大量的增删改查操作,特别是企业用户在更新兼职信息的时候,数据库需要经常进行更新操作,因此我们要考虑将一些数据进行缓存,比如用户信息等,因为我们可以引入redis中间件。将用户登录的信息缓存在redis中,当用户更新操作时我们再对缓存中的信息做更新,这样子能够拦截大量的数据直接访问数据库,避免数据库被击垮,提高系统的可用性。 4. 升级系统
系统需要更新,功能必须进行迭代,我们需要根据目前情况,加入实用功能,比如可以增加发送短信给企业等等人性化功能,这样子能够将系统更加强大,使用人数量越来越多。
第四章 系统的实现
4.1 后台模块设计
4.1.1 企业管理
企业用户管理:如图4.1,可以对企业用户进行增删改查操作,实现对发布求职信息者的信息管理,同时,还可以禁用该企业用户的登录操作,或者删除它。如果用户密码忘记了,还可以让上级管理员辅助重置密码。
图4.1
4.1.2 公告管理功能
如4.2图,管理员需要维护网站的公告,时刻让来访者知道的动态,公告的内容主要分为是最近发生的事情,或者某些温馨提示等,操作跟企业管理相似。
图4.2
4.1.3 留言管理
留言管理,主要是对学生的留言内容进行管理,通过学生们的留言,可以对兼职信息的真假起到一个辅助鉴别作用,这样子可以对发布该信息的企业用户进行操作,如图4.3,具体可以看以下代码
图4.3 /***
* 用户删除 */
@RequestMapping(value = \"/removeById\") @ResponseBody
public ResultData removeById(@RequestBody MessageBoard messageBoard) {
if (messageBoard.getId() == null) { return new ResultData(WebSiteCode.FAILED, \"Id不能为空!\");
}
boolean flag =
messageBoardService.removeById(messageBoard.getId()); if (flag) {
return new ResultData(WebSiteCode.SUCCESS, \"删除成功!\");
}
return new ResultData(WebSiteCode.FAILED, \"删除失败!\"); }
/****
* 批量删除用户 */
@RequestMapping(value = \"/removeBatch\") @ResponseBody public ResultData removeBatch(@RequestBody List if (CollectionUtils.isEmpty(ids)) { return new ResultData(WebSiteCode.FAILED, \"Id数组不能为空!\"); } boolean b = messageBoardService.removeByIds(ids); if (b) { return new ResultData(WebSiteCode.SUCCESS, \"删除成功!\"); } return new ResultData(WebSiteCode.FAILED, \"删除失败!\"); } 4.1.4 个人信息修改 如图4.4,我们需要进行密码,个人信息等修改,这个操作可以让我们自主编辑个人信息,具体代码可以看下面 图4.4 @RequestMapping(value = \"/updateInfo\") @ResponseBody public ResultData update_info(@RequestBody ReqUserVo reqUserVo, HttpServletRequest request) { Admin temp = new Admin(); //判断密码 if (StringUtils.isNotBlank(reqUserVo.getOldPassword())) { //校验密码 Admin oldUser = adminService.getById(reqUserVo.getId()); boolean b = StringUtils.equals(reqUserVo.getOldPassword(), oldUser.getPassword()); if (!b) { return new ResultData(WebSiteCode.FAILED, \"对不起,旧密码校验不通过!\"); } temp.setPassword(reqUserVo.getNewPassword()); } BeanUtils.copyProperties(reqUserVo, temp); if (StringUtils.isBlank(reqUserVo.getOldPassword())) { temp.setPassword(null); } boolean flag = adminService.updateById(temp); if (flag) { HttpSession session = request.getSession(); session.removeAttribute(\"user\"); session.setAttribute(\"user\ return new ResultData(WebSiteCode.SUCCESS, \"更新成功!\"); } else { return new ResultData(WebSiteCode.FAILED, \"更新失败!\"); } } 4.2 前台网站模块设计 4.2.1首页 客首页是给网站访客展示所用,是一个网站的门面页面,一个好的页面将会带来的好的交互感,我们的网站回显了大部分最新可阅读信息,比如公告,兼职信息等,开门见山地展示我们网站的主题,让用户更加方便地找到兼职信息等。如图4.9所示。 图4.9 4.2.2 首页职位搜索 如5.0图,这里是我们中辅助搜索兼职信息的功能区,用户在搜索感兴趣的兼职时候可以使用该模块尝试搜索,该模块搜索是利用兼职信息的标题进行模糊搜索,假如用户对计算机该兴趣,我们可以键入”计算机”,系统将会自动匹配相关的兼职信息展示给用户。 图5.0 /*** * 首页搜索框(两种搜索条件) * 1.搜索出职位分类,若为空,那么就是直接模糊搜索职位名称 */ @RequestMapping(\"searchList\") public String searchList(Map map, HttpServletRequest request) { String keyword = request.getParameter(\"keyword\"); ArrayList 4.2.3 留言功能 如图5.1,在兼职信息的下边开通了评论功能,在这里我们可以阅览用户的具体需求,如果用户留下了联系方式,我们还可以从这里得到用户的联系方式然后与他联系,获取人才的沟通方式。通过该功能,我们可以获取到更多的一些用户理念,然后对系统进行改进操作。具体代码如下 图5.1 /*** * 添加留言 */ @RequestMapping(\"toAddMessageBoard\") @ResponseBody public ResultData toAddMessageBoard(MessageBoard messageBoard, HttpServletRequest request) { HttpSession session = request.getSession(); Student user = (Student) session.getAttribute(\"user\"); if (user == null) { return new ResultData(WebSiteCode.FAILED, \"请登录!\"); } messageBoard.setUserId(user.getId()); messageBoard.setType(1); messageBoardService.save(messageBoard); return new ResultData(WebSiteCode.SUCCESS, \"添加成功!\"); } 4.2.4 人才模块 如图5.2中,人才板跟留言板是我们网站的一个辅助功能,我们可以通过这里看到系统随机推荐的人才信息,增强企业对我们网站的信任度,而留言板可以看到我们网站,用户互动的最新情况,通过留言还能直接链接到兼职信息区,是一个引流模块之一。具体代码如下 图5.2 @RequestMapping(value = \"studentList\") public String studentList(ReqPageUserVo reqPageUserVo, Map map, HttpServletRequest request) { QueryWrapper if (StringUtils.isNotBlank(reqPageUserVo.getBeginTime()) && StringUtils.isNotBlank(reqPageUserVo.getEndTime())) { //将搜索条件的日期+1 queryWrapper = new String endTime = DateUtils.addDays(reqPageUserVo.getEndTime(), 1); queryWrapper.lambda().ge(Student::getCreateTime, reqPageUserVo.getBeginTime()); queryWrapper.lambda().le(Student::getCreateTime, endTime); } if (StringUtils.isNotBlank(reqPageUserVo.getUserName())) { queryWrapper.lambda().like(Student::getUserName, reqPageUserVo.getUserName()); } if { queryWrapper.lambda().eq(Student::getStatus, reqPageUserVo.getStatus()); } Page userPage.setCurrent(reqPageUserVo.getCurrent()); userPage.setSize(reqPageUserVo.getSize()); userPage.setAsc(\"create_time\"); IPage map.put(\"userPage\ //给回显状态值 map.put(\"status\reqPageUserVo.getStatus() == null ? -1 : reqPageUserVo.getStatus()); return \"personnel-list\"; } } (reqPageUserVo.getStatus() != null && reqPageUserVo.getStatus().intValue() != ReqPageUserVo.ALL_STATUS) 第五章 系统测试 系统测试是软件委托的最关键的部分。由于软件质量的好坏直接影响到最终的保护软件生产委托。测试软件的质量,性能,可靠性和稳定性是软件测试的过程中,一个好的测试会话可以最大程度的减少软件错误率的面积,降低风险的软件生产过程的水平。测试环节中必须保证严谨,严格按照规范进行测试时,最基本准则。主检验系统被划分成实机测试,功能测试,单元测试,安全性测试,接口测试,可用性测试,性能测试,兼容性等。 测试的目的是为了尽可能多地找出程序中隐藏的错误,你还需要验证程序是否与开发文档或原型一致,以提高测试的效率,我们可以使用其他工具,以协助我们测试,并让界面测试中发现的问题,我们应及时对测试进行一系列的解决方案,辅助绘图或测试文档可以帮助我们快速定位问题,解决问题的反馈,但主要还是保证程序能稳定运行,这是最基本的标准启动了一项计划。 5.1 功能测试 功能测试主要包括五项内容:准确性、可操作性、适用性、依从性、安全性。 本系统功能测试如表5-1所示: 表5-1 系统功能测试 测试内容 测试结果 适用性 准确性 可操作性 依从性 安全性 一致性 优 优 优 优 优 一致 5.2 可用性测试 可用性测试用于检测系统的交互能力强弱,操作易懂性,流程规范性以及逻辑通畅性。具体测试方面如表6-2所示。 表6-2 系统可用性测试 测试项 窗口动态操作是否正常 操作模块交互性友好 文案提示是否正确 模块布局是否合理 选项勾选是否切换正常 输入流机器操作是否支持 数据是否正确显示 流程是否规范 是否有辅助提示信息 测试人员的评价 是 是 是 是 是 是 是 是 是 5.3 系统用例测试 系统测试用例,是为了单独测试出系统功能的隐藏问题。具体测试方面如表6-3所示。 表6-3 系统用例测试 序号 1 用例名称 登录体验 用例操作 输入用户名、密码 预期结果 输入正确用户名和密码进入系统主界面,输入错误用户名或密码给出提测试结果 符合预期 示 2 添加用户 输入用户信息 前台页面展现相应的博客论文 3 4 发布兼职信息 添加相关兼职信息 添加兼职分类信息 5 6 7 添加公告 更新密码 留言 添加公告信息 输入密码验证并更新 对兼职信息留言 正确存储公告信息 正确更新密码 留言板显示留言信息 符合预期 符合预期 符合预期 添加分类信息 添加信息成功 正确存储分类信息 符合预期 符合预期 符合预期 5.4 性能测试 系统性能测试在测试环境中模拟的速度,测试系统是否符合我们的现状。在Web环境中,系统会遇到许多类型的环境阻力,生产是最常见的一个。所以我们需要我们的价值体系,有多少萍在正常情况下,我们还需要评估当前系统需要服务器配置,是否最具成本效益的,而不需要额外的资源浪费。索引性能测试分为运行时间比,萍和并发节点网络的价值。 1)操作速度:运行在Web服务器上,系统运行流畅不卡顿 2)网络网络响应时间,在电信网络下,我们的ping值为200ms,这代表了我们的节点速度是比较快的,在正常的操作指标范围内,因此我们所部署的Web服务器也是能够满足托付需求的。 3)根据软件并发测试,我们可以测试出我们的系统支持同时2000人在线。 5.5 测试结果分析 通过上面的测试报告,我们可以分析,我们大学生兼职网络具有较强的稳定性,已满足用户的需求以及生产标准、基本流程和接口,没有明显的错误。操作简单、方便,服务器性能好,是一个标准的服务性系统 结论 本论文为大家介绍了一个可用性的系统,基于目前最流行的语言之一Java开发,使用了SpringBoot框架以及Jpa持久化框架进行开发,提升了较大的开发效率,同时,以前端开发框架作为辅助手脚架,倡导人们分享知识体系等观点。这样子既能存储大家的知识体系,又能达到分享的功能,还能得到广告赞助,提升经济水平。 总结如下: (1) 科技能够提高生产力,改变人们的生活消费习惯; (2) 个人博客系统势必成为新的一种文章新闻类型; (3) 搭配新型的框架,会让你的开发效率事半功倍; (4) 好的一个交互模型能够让用户用起来更加得心应手,体验感强; (5) 合理规划成本,合理评估技术,能够让你的系统更加完美。 参考文献 [1]刘萍.基于SpringBoot框架的小区物业管理系统的设计与实现[J].电脑知识与技术, 2015 (7) :117-119. [2]杨骏, 张华强.使用SpringBoot架构小区物业管理系统[J].计算机光盘软件与应用, 2012 (20) :233-234. [3]常大俊.基于JSP小区物业管理系统设计与实现[J].电子世界, 2014 (10) : 455. [4]潘冀松.基于Java的物业管理信息系统的设计与实现[D].北京:北京工业大学,2011:1-94. [5]陈长江, 王霞.基于Web的博客管理信息系统设计及实现[J].电脑知识与技术:学术交流, 2006 (12) :2, 4. [6]胡志强.浅谈MIS在博客管理系统中的应用[J].信息通信, 2012 (3) :164. [7]李忠凯, 贾年.J2EE的智能小区博客管理系统设计与实现[J].现代计算机, 2017 (3) :68-73. [8]陈毓.基于WebService的博客管理信息系统的设计与实现[D].南昌:南昌大学, 2016:1-55. [9] 张楠.,基于Web的小区博客管理系统的设计与实现[D]. 张楠.西安电子科技大学 2013 [10] 马争,周艳,谢世波. MVC设计模式在网管系统中的应用与研究[J].电子科技大学学报. 2005(05) [11] 唐大仕, 《Java程序设计》 清华大学出版社、北京交通大学出版社联合出版的图书 2015 [12] 凯.S.霍斯特曼(Cay S. Horstmann)《Java核心技术》 机械工业出版社 2016,9 [13] High Performance MySQl《高性能MySQL》电子工业出版社 2010,1 [14] 廉斯《Java Web高级编程》 清华大学出版社 2015,6 [15] [美] Kyle Simpson你不知道的JavaScript 2018,1 致 谢 生活很多东西需要自己去了解。从0到构建一个系统,都是一步一步慢慢开始搭建直至其完美,最终草案,成功在这个过程中,我要感谢我所有的同学们和老师的帮助,他们在我最困难最无知的时候都在尽心尽力地教我,帮助我使我进步,在这里我要感谢他们。 反思,是发展我的大脑思考最重要的一个指标,我每天一定总是反思自己的行为,当我与困难面对面时,我会停下来反思这个过程中,每一步都需要去做,或者当你遇到困难时,你会发现,你没有仔细想犯的错误之前,如果你能设计提前这种情况,那么你就不再重复。 首页设计和编码,是我最不擅长的事,但为了完成我的设计,我开始研究,想让我的系统更完美的展现在我面前,接口的规格,参数校准,联锁没有错,我在这里再一次感谢那些帮助我的人。 最重要的开发系统是Java和H5的基础的基础,你会发现,无论是集成框架还是不错的代码,正在经历一个堡垒基点去一步步加起来,如果我技术不够,那么我可以少走很多弯路物种的发展。设计模式,在人们纷纷拿出了发展经验,学会利用好它,你会更有效。 最后,我衷心祝愿所有学院老师工作顺利,身体健康,学校越来越辉煌! 因篇幅问题不能全部显示,请点此查看更多更全内容