1、基于SpringBoot的校园招聘系统 Campus Recruitment System Based On SpringBoot 内容摘要该系统是是基于SpringBoot的校园招聘系统,通过分析当前招聘信息系统的优缺点,针对学校对招聘信息的真实性具有较高的要求,企业则着重于招聘信息的传播途径的差异性,开发出一个独立且个性化的校园招聘系统具有较高的使用价值。前端采用Thymeleaf+hAdmin+Bootstrap+Jquery等技术,构造出一个简洁、交互性良好、流程完善、操作简单的用户访问界面;后端使用SpringBoot+Mybatis+Shiro设计出一个功能复杂、扩展性强、安全性高
2、维护难度较低的管理平台。两者同时对用户管理模块、简历管理模块、职位管理模块、角色模块、统计模块的设计与分析进行了详细的描述。本系统部署后,将会直接应用于各大高校和企业,无需对功能和界面进行单独的设计,减少了系统维护成本、时间成本和人力成本,提高了企业和学校招聘的工作效率,为社会的招聘事业做出贡献。关键词: JAVA系统 网上招聘 高校 SpringbootAbstract The system is based on the spring boot campus recruitment system. By analyzing the advantages and disadvantages
3、 of the current recruitment information system, aiming at the higher requirements of the authenticity of the recruitment information of the school, the enterprise focuses on the differences of the communication channels of the recruitment information, and develops an independent and personalized Cam
4、pus Recruitment system with high use value. The front-end uses technology such as thymeleaf + hadmin + bootstrap + jQuery to construct a simple, interactive, process perfect and simple user access interface; the back-end uses springboot + mybatis + Shiro to design a management platform with complex
5、functions, strong scalability, high security and low maintenance difficulty. At the same time, the design and analysis of user management module, resume management module, position management module, role module and statistics module are described in detail.After the deployment of the system, it wil
6、l be directly applied to universities and enterprises. There is no need to design the function and interface separately, which reduces the system maintenance cost, time cost and human cost, improves the working efficiency of enterprise and school recruitment, and makes contributions to the recruitme
7、nt cause of the society.Key words:JAVA Recruitment College Springboot目录第一章 绪论11.1研究背景和意义11.2 现状分析11.2.1 国内研究现状11.2.2 国外研究现状11.2.3 发展趋势11.3 本文组织结构2第二章 相关技术与工具32.1 前端技术32.1.1 Thymeleaf32.1.2 H-Admin32.1.3 Bootstrap32.2后端技术32.2.1 SpringBoot32.2.2 Maven32.2.3 Redis42.2.4 Shiro42.2.5 MyBatis42.3 开发环境42.3
8、1 软件环境42.3.2 硬件环境42.3.3 开发工具4第三章 系统需求分析63.1 系统总体需求分析63.1.1 系统需求概述63.1.2 业务流程分析93.2 系统功能分析93.2.1 招聘管理系统103.2.2 招聘网站11第四章 系统设计134.1 系统总体设计134.1.1 物理架构134.1.2 软件架构144.1.3 功能模块154.2 系统详细设计164.2.1 数据流程设计164.2.2 功能流程设计204.2.3 数据结构设计30第五章 系统实现355.1 功能模块实现355.1.1 用户注册模块355.1.1 用户登录模块355.1.2 用户信息模块365.1.3 公
9、司信息模块375.1.3 职位信息模块385.1.4 简历模块405.2 核心代码实现405.2.1 工具类模块415.2.2 授权模块435.2.3 接口调用模块44第六章 系统测试476.1 功能测试476.2 集成测试476.3 性能测试48第七章 总结49参考文献50致谢51第一章 绪论1.1研究背景和意义互联网经过数十年的发展,衍生出许多规模不一的线上招聘网站,有规模较大、运营时间长的智联招聘、前程无忧,也有迅速崛起的新兴招聘网站BOSS直聘和拉钩网,同时也有规模较小的如公司附带的招聘系统。招聘系统一旦要与高校进行联系,则必然需要较高的安全性和信息的正确性,因此搭建一套完善的与校园相
10、关的招聘系统,既可以对招聘信息进行共享,还能提高学校人事的办事效率。本系统采用Java技术对招聘系统进行开发,Java技术发展至今,经过无数次开发、迭代与维护,已经具备开发商业化系统的严苛条件,可以保证系统运行的稳定性。基于Java技术已经衍生出许多优秀框架,例如具备快速开发优势的SpringBoot,因此基于SpringBoot对招聘系统进行开发具有较高的实践意义。1.2 国内外研究现状1.2.1 国内研究现状据统计,国内东部信息化普遍程度已经达到70%,中西部分别达到19%与13%。部分行业的信息化会对该行业的传统模式下的运营造成较大影响,带来的好处则是加速对该行业的发展进度。因此,当招聘
11、行业结合互联网,将会加速该行业的发展,更快速、更精确为社会匹配到相应的人才。若为高校建设一个招聘系统,既对学校人事减轻了一定工作量,也为学校对社会人才的输出做出了一定的贡献,因此为学生招聘信息的发布对学校而言是一项持久且重要的责任1。1.2.2 国外研究现状国内大部分招聘网站无法精确针对适合的群体显示对应的招聘信息,由于需要考虑商业带来的利益,因此招聘工作普遍面向社会群体。而根据国外数据统计,2010年,90%的世界五百强企业使用在线招聘,每年有1800多万人在网站上投递简历2。2017年,网上投递简历人数已超过数十亿。而且国外高校招聘工作的理念为公平、信用与平等,并且会对个人情况进行分析,避
12、免招聘决策失误带来的负效益问题,使招聘工作变得更加合理和有序化3。1.2.3 发展趋势随着求职者受到互联网影响的程度在不断加深,国内高校在招聘上的需求越发高涨。因此,在发挥国内人口优势的前提下,国内需要针对高校招聘工作搭建独立的网站,满足学生不同的招聘需求。1.3 本文组织结构 本文主要分为七章:第一章介绍本文的研究背景和意义、现状分析和组织结构。 第二章介绍系统使用到的前端后端相关技术与工具,并分析工具软件的优势。第三章主要对系统的功能和操作流程进行整理,最后进行需求分析。第四章主要对系统的功能进行总体设计和详细设计。第五章根据系统需求分析和设计编写出具体界面和后台代码、搭建出数据库结构。第
13、六章主要是对设计出的系统进行功能测试、集成测试与性能测试。第七章是对全文的的概括以及对系统的不足做出补充。2广东东软学院本科生毕业设计(论文)第二章 相关技术与工具2.1 前端技术2.1.1 ThymeleafThymeleaf是一个目前比较流行的模版引擎,可以用来代替老旧的jsp,并配合Java更好地动态完成数据和页面的渲染工作。比如通过Thymeleaf模板语法获取并通过条件判断处理http请求、响应、会话当中存储的一些数据。2.1.2 H-AdminH-admin是一个具有快速开发、轻量级响应的前端框架。基于HTML语言、jquery插件、Bootstrap框架,快速实现多种美观的页面和
14、用户体验良好的动态效果,大致上符合开发人员的各种复杂需求。2.1.3 BootstrapBootstrap是一个基于HTML、CSS、JavaScript构建出完整的一套目前比较流行前端框架,其优点在于使得web开发变得更加便捷。开发者可以使用Bootstrap CSS、Bootstrap JavaScript来开发出交互良好、界面精美的web应用。2.2后端技术2.2.1 SpringBootSpringBoot是一个后端框架,旨在快速打造一款基于Spring、SpringMVC的web应用。其理念是“约定大于配置”,使开发人员不必拘泥于搭建项目所需的复杂和模板化的配置文件,从而快速上手核心
15、代码的编写。同时良好的扩展性也是SpringBoot的优点,通过配合Maven引入其他应用对应的starter配置,就能够直接使用默认的配置和工具类4。2.2.2 MavenMaven是一个项目管理工具,能够配合tomcat、jetty等应用进行项目生命周期的管理。通过Maven,能够创建、编译、测试、发布项目,也能够对jar包进行安装、清理与卸载。Maven的使用比例在不断增长,有助于该应用良好地发展与更新迭代。2.2.3 RedisRedis是一个远程字典的服务应用,适用于多种编程语言,基于该应用可以实现key-value数据的存储,日志文件存储。其优点在于利用内存、单线程、集群实现项目的
16、高可用,作为中间件为流量较高的系统提供了流畅的访问体验4。2.2.4 ShiroApache Shiro是一个Java安全框架,用于对应用的身份、权限、密码和会话数据进行管理。核心组件由Realm、Subject、SecurityManager组成,所有权限校验的操作都会在Realm中完成,并通过数据库查询完成校验。2.2.5 MyBatisMyBatis是一款轻量级的持久层框架,将业务逻辑与数据层逻辑分离,使系统更容易维护。通过Java对象和xml配置的简单映射,实现实体类与数据间的转换;通过MyBatis语法,更灵活、也更方便地实现SQL语句的操作与结果的映射。2.3 开发环境2.3.1
17、软件环境表2-1 软件环境图2.3.2 硬件环境表2-2 硬件环境图2.3.3 开发工具 表2-3 开发工具图50 第三章 系统需求分析3.1 系统总体需求分析3.1.1 系统需求概述招聘系统面向的人群主要分为三种:学生、学校人事与企业公司,所有角色的账号都是由管理员账号进行创建的。各个角色具有不同的职责,包括:账号的创建与管理、职位信息的发布与收集、简历的投递与回馈。由于招聘的形式又分为线上招聘和线下宣讲会的形式,在创建职位的同时,需要由学校人事进行空闲教室的预留操作,并于某个时间点,在系统上分配给线下宣讲会对应的公司。具体如下图3-1和图3-2,系统管理员拥有对所有资源进行管理的权限。图3
18、1 系统用例图图3-2 管理员用例图公司人事账号可以通过管理员创建并于管理端系统进行登录,公司人事能够对自己的账号信息进行查看与编辑、查看用户投递的简历,具体如图3-3所描述。图3-3 公司人事用例图学校人事账号主要负责对发布的职位信息进行操作,如有必要,还为线下宣讲会的教室进行分配操作,如图3-4所示。图3-4 学校人事用例图普通用户的账号可用于客户端页面的登录,并管理该账号所持有的简历和基本信息,如图3-5描述。图3-5 普通用户用例图3.1.2 业务流程分析各大高校的招聘流程大同小异,这是由于招聘的性质和流程所决定的,这个体制在社会上普遍存在,并不断地网络化。因此,根据社会招聘流程以及
19、各大高校在招聘上的共性,筛选出一系列流程。(1)企业公司人事通过管理员创建的账号进行登录,登录后完善公司信息,需要经过学校进行审核,方可进行职位的创建,创建后的职位信息是对所有用户公开的。(2)未注册的用户可以直接访问公布出来的公司信息和职位信息,用户使用当前持有的邮箱注册后可以向有意向的职位投递简历,一段时间后将收到回复。(3)企业公司人事收到简历后,将对该简历进行状态修改,或者使用邮件回复应聘者。(4)应聘者收到回复后,根据情况选择入职或者选择其他职位。3.2 系统功能分析根据系统角色的特殊性,结合招聘系统业务流程,招聘系统可分为管理端和招聘网站。管理端由管理员、企业公司人事、学校人事使用
20、招聘网站由占据比例最大的普通用户使用,详见图3-6系统结构图所示。图3-6 系统结构图3.2.1 招聘管理系统(1)用户信息管理管理员能够对所有用户信息进行查询,查询出来的信息以分页的形式更直观地显示出来。若对用户信息需要更详细灵活地匹配,可以通过搜索框与筛选框对信息进一步筛选并显示。执行用户注册操作时,必须保证用户名、邮箱唯一,以免在执行相关操作时出现数据异常,注册后的用户可以直接根据角色登录对应的系统。用户管理不包括用户信息的删除,也不具备对数据进行删除的操作,最佳的做法是将用户的状态置为冻结。(2)职位信息管理校园职位信息具备几个要素:薪资、城市,职位要求。这也是绝大多数求职者期望了解
21、的数据。因此,创建职位信息必须具备以上数据并直接显示,这是求职者与公司之间沟通的第一架桥梁。对于校园招聘,线下宣讲会无疑更加直接表明公司人事的招聘意愿,线下宣讲会与线上招聘相结合的方式能够让求职者更灵活分配求职时间。职位信息对管理端系统的所有角色开放,学校人事需要对公司在校园发布的职位进行审核,公司能够查看属于本公司发布的所有职位。(3)公司信息申请为了进一步确保公司所发布的职位有利于学生群体,因此必须对发布职位的源头进行审核,审核的材料由公司社会统一性代码与营业执照组成,并由系统管理员进行统一审核。若审核不通过或不进行审核,那么该企业公司发布的职位将不可见,这是不可或缺的一个保证安全性的步骤
22、4)简历管理通过已注册的求职者投递简历后,在管理端登录公司账号可查看投递记录,并对该投递记录进行一个结果的反馈。(5)角色配置系统角色的定义的作用在于,当未登录的用户获取到管理端的网址就能够直接进入系统,因此为每个角色分配指定的网址是安全且可靠的,而且无需再依靠为每个用户设置菜单、权限分配等操作就能够实现权限的分配。3.2.2 招聘网站(1)用户登录注册当需要执行保存用户数据等操作,则需要未注册的用户注册一个账号,注册账号时,需要同时保证用户名与邮箱唯一,注册完成后,直接对密码进行加密操作,并将注册的数据同时保存至数据库,保证用户能够直接登录。(2)公司信息查询 用户无需注册就可以在该系统
23、查看公司的职位数量、公司简介、公司发展阶段、公司规模大小等信息。(3)职位信息查询职位信息对于游客来说是完全开放的,使应聘者能够充分了解并筛选出自身所需的职位。若无法执行指定的操作,那么则需要用户登录该系统。(4)简历上传简历关乎到求职者的个人信息,用户可以关联一个或多个简历,以便在投递时更好地选择。因为求职者需要存储简历数据,因此求职者在登录后才能上传简历,更好地将简历与账号信息进行关联。目前简历功能是上传文件,因此上传的同时需要对文件的大小和文件的格式进行准确性的校验。(5)岗位应聘求职者找到意向的工作后,可于职位信息页面点击投递简历,选择需要投递的简历,最后提交即可。提交后,简历投递的状
24、态默认为待回复,直到企业公司人事查看该投递的简历后,根据实际情况修改为邀请面试或者不合适。求职者投递简历后,简历投递的按钮显示为灰色,表示无法二次投递。(6)投递状态查看招聘网站在列出该用户简历投递情况的同时,应同时显示简历的状态,以便于让求职者更明确地了解到自己在该职位的投递情况。投递状态分为:待回复、邀面试、不合适等状态。求职者在收到邀面试的状态时,应同时查看邮箱内是否有对应的面试邮件,以更好地准备面试;若投递状态为不合适时,应直接准备下一个职位的投递。第四章 系统设计4.1 系统总体设计4.1.1 物理架构本校园招聘系统将拆分为多个子系统,分别为用户模块、管理端模块、门户模块、权限模块、
25、工具类模块。各个子系统将部署至各自的服务器当中,同时对子系统的运行内存大小做出一定的限制,避免占用过大的内存。用户模块用于存储用户数据,并管理用户信息查询、修改、新增操作,提供招聘网站个人中心信息页面的渲染与现实;管理端模块负责招聘管理端系统页面的显示与相关功能的实现;门户模块负责展示招聘系统中无需用户登录的页面,例如:职位与公司信息的筛选与显示;权限模块不与页面的显示相关联,主要负责维护各个子系统的访问权限、网址的匹配与转发、注册子系统的注册中心等功能,为整个系统提供良好的安全性;工具类模块同样不与页面的展示进行关联,主要为整个系统提供工具类接口,避免了各个子系统中代码的冗余。子系统都已配置
26、相关的内存限制,并部署于Tomcat服务器当中。由于权限模块对各个子系统进行了注册,可将子系统进行集群部署,并将物理机器放置于不同地域,避免其中一台机器断电,导致该子系统无法运行。详见如图4-1所示。图4-1 物理架构图4.1.2 软件架构子系统服务器使用Tomcat服务器作为WEB容器,提供轻量级别的WEB服务访问,在其中部署一个或多个子系统。子系统数据库服务使用的是MySQL数据库,提供对本地数据库数据的访问,在集群的状态下能够保证高并发流量的访问。Tomcat与MySQL是轻量级服务应用的最佳选择,既保证了服务的稳定运行的同时,无需消耗过高的内存与磁盘空间,详见图4-2所示。图4-2 软
27、件架构图4.1.3 功能模块通过系统需求分析,可以简单地将系统分为招聘信息管理、简历管理、用户信息管理、公司信息管理以及招聘网站等模块,每个模块又分别包含子模块。招聘网站模块是单独的系统,不同于管理端模块的是,招聘网站提供给未注册或已注册的普通用户进行访问使用。具体描述如图4-3所示。图4-3 功能模块图4.2 系统详细设计4.2.1 数据流程设计数据流程设计用于系统需求分析阶段和系统设计阶段,在系统详细设计阶段,通过数据流程图能够描述系统底层、详细的数据流向逻辑,着重点在于每个功能数据的详细数据流向。(1)用户注册应聘者需要在注册页面完成用户名、邮箱、密码的填写,若有数据为空或者数据不合法(
28、包括长度不合法、用户名重复、注册的邮箱重复),则无法正常注册,并返回到登录的页面提示用户重新输入,对应的数据流程图如4-4所示。图4-4 用户注册数据流程图(2)用户登录求职者在注册操作成功后,使用注册时自定义的用户名与密码即可完成登录操作,无需再执行其他验证。用户必须输入用户名和密码,并与用户信息表中对应的数据相符合方可完成登录操作。若提示失败,需要重新输入;若成功,则在首页显示用户名,数据流程图如图4-5所描述。 图4-5 用户登录数据流程图(3)用户信息修改在修改信息页面,可以查看由本人注册的用户信息,若要修改,只需覆盖指定的用户信息提交即可。若提示失败,则说明修改失败,可再次修改;若提
29、示成功,则显示已修改的内容,用户信息修改数据流程图如4-6所示。图4-6 用户信息修改数据流程图(4)职位创建公司人事或管理员对职位进行创建,并根据公司自身发展状况发布合适职位。发布职位需要填写的信息包括:职位名称、招聘开始时间、招聘结束时间、招聘形式、职位所需学历、职位所需工作经验等信息。创建并通过审核成功后将在数据库插入一条职位信息。招聘网站可对该职位信息进行显示,供求职者访问。职位创建数据流程图如4-7所示。图4-7 职位信息数据流程图(5)职位修改职位信息被创建后,可在管理端经过管理员、公司人事、学校人事进行所有信息的修改。如需对职位信息进行修改,可在修改界面覆盖旧信息完成数据的修改。
30、若提示成功,则不再显示被覆盖的旧内容;若提示失败,则需要重新提交,并遵守特定的规则修改数据。职位修改数据流程图如图4-8描述。图4-8 职位修改数据流程图(6)简历信息创建简历信息创建指的是普通用户的简历的创建。本系统将简历视为用户上传的文件,因此用户可上传一份或多份简历,摒弃了将简历进行拆分的琐碎操作,使得简历的管理更加灵活与方便,简历上传完成后,将该简历与用户绑定,并添加简历上传的时间。简历信息创建数据流程图如图4-9所示。图4-9 简历信息创建数据流程图(7)简历投递记录创建简历投递记录是描述用户在对意向的工作进行简历投递的行为。简历投递后,用户和职位所属公司能够查看该简历投递情况。公司
31、人事能够对该简历投递进行审核,审核后,会自动修改简历投递的状态,同时用户也能够收到公司的反馈。简历投递记录创建的数据流程图如图4-10所示。4-10 简历投递记录数据流程图4.2.2 功能流程设计根据数据流程设计可得出详细的数据流向,借此我们可以进一步分析出每个模块业务代码的流程,提取出每个功能所需的条件,并以数据流程图进行描述。(1)用户注册求职者在不通过注册的条件下,可查看通过学校审核过的职位信息,若无意向的工作,则可以不执行注册操作;若求职者对该公司的某个职位感兴趣,则需要进行注册与登录操作。访客在注册时,需要按照要求填写指定的信息,否则无法正常注册并回到注册界面;注册成功后,会自动跳转
32、至登录界面。用户注册流程如图4-11所示:图4-11 用户注册流程图(2)用户登录一旦涉及到用户数据的操作,用户登录的操作必须可少。用户登录主要涉及到用户名与密码这两个用户基本数据,执行登录操作后,会对该数据进行匹配与校验。用户登录的具体流程图如4-12所描述:图4-12 用户登录流程图(3)用户信息修改普通用户角色或管理员角色可对用户基本数据信息进行修改操作。修改分为两个操作:修改基本信息和修改密码。管理员拥有修改用户信息的权限,是为了保证在用户无法对数据进行修改操作的情况下,预留的一个备用方案。具体流程图如图4-13所示:图4-13 用户信息修改流程图(4)职位创建职位创建是公司人事或管理
33、员对招聘信息管理的一种手段,创建并审核后的职位能够正常地于首页展示,也能够正常地被检索。若职位创建成功,暂时还无法正常显示,还需经过审核;若新建失败,则给出警告信息,并返回职位新建的界面重新输入合法的数据信息。公司人事创建后的职位还需学校人事进行审核,审核通过后方可对所有用户开放,具体如图4-14所示。图4-14 职位创建流程图(5)职位修改公司人事能够对创建出来的职位进行修改,修改后的数据将直接覆盖旧信息。由于管理员拥有最高权限,因此也具备对职位的修改功能。指定的职位若修改成功,则显示最新信息;若修改失败,则返回职位修改页面,并发出警告,提示再次修改,具体如图4-15所示。图4-15 职位修
34、改流程图(6)职位查询应聘者可根据首页显示的职位进行简单职位信息的查询,同时也能够利用筛选框添加筛选条件对职位信息进行高级查询。查询后的职位列表同时包含职位总数、分页大小、当前页数作为分页插件的准备数据,具体流程如图4-16所示。图4-16 职位查询流程图(7)简历信息创建简历信息的创建对求职者来说至关重要,本系统的简历系统对于求职者来说操作简单,只需上传自定义的简历文件即可,不再受到简历模板的拘束。简历文件经由求职者上传后,于用户的个人中心展示,并于投递简历时选择合适的简历,具体如图4-17所示。图4-17 简历信息创建(8)简历信息查询对于求职者而言,简历信息可于用户中心查看;对于公司人事
35、与管理员而言,可于管理端菜单栏进行查看,但无法修改简历文件的信息。简历信息查询的流程图如图4-18 所示。图4-18 简历信息查询流程图(9)简历投递记录创建注册并登陆后的求职者,可对指定职位投递简历,投递后的记录由简历投递记录表进行关键数据的存储。公司人事能够直接查看每个部门的简历投递情况,并对合适的简历进行筛选与回复;同时求职者也能够直接查看简历的投递情况,具体如图4-19所示。图4-19 简历投递记录创建(10)简历投递记录修改应聘者在投递自己的简历后,需要由公司人事进行查看与审核。公司人事审核简历的状态分为邀面试、不合适、待回复,回复的方式可选择使用系统内的邮件发送,也可以直接对状态进
36、行修改,最终完成该简历的审核操作,具体如图4-20所描述。图4-20 简历投递记录修改4.2.3 数据结构设计(1)概念模型设计概念模型是对现实的一个抽象,是数据库管理人员与需求方交流的一个途径。该模型不需要对系统的具体实现进行分析,只需要解释各个实体间的关系,达到需求分析的效果,详细如图4-21所示。图4-21 数据库概念模型设计图(2)逻辑结构设计表4-1 用户信息表表4-2 角色表表4-3 用户角色关联表表4-4 菜单表表4-5 菜单角色关联表表4-6 公司信息表表4-7 用户头像关联表表4-8 职位信息表表4-9 简历信息表表4-10 简历信息投递表表4-11 用户简历关联表第五章 系
37、统实现5.1 功能模块实现5.1.1 用户注册模块注册页面是用户创建新账号的页面,填写完整的用户名、密码、邮箱、邮箱验证码即可完成注册。注册成功后跳转至登录页面,具体如图5-1所示。图5-1 用户注册页面5.1.1 用户登录模块登录界面是一个网站的入口,若登录后,没有进行注销操作,再次进入登录界面,则自动跳转到首页,具体如图5-2所示。图5-2 用户登录界面5.1.2 用户信息模块所有已登录的角色可进入用户个人中心,可对用户信息进行修改、查询操作,具体如图5-3与图5-4所示。图5-3 修改个人信息界面图5-4 修改登录密码界面5.1.3 公司信息模块公司账号登录管理端系统后,如未绑定公司信息
38、则进行绑定,如已绑定则进行修改,具体如图5-5与图5-6所示。图5-5 公司信息列表界面图5-6 修改公司信息界面5.1.3 职位信息模块职位信息模块为公司角色的用户提供了进行职位信息的创建、修改与创建操作,具体如图5-7、图5-8与图5-9所示。图5-7 职位信息创建界面图5-8 职位信息列表界面图5-9 职位信息编辑界面5.1.4 简历模块简历信息模块包括简历的查看和管理管理。应聘者投递简历后,公司人事登录系统可查看与管理投递的简历,投递信息如投递时间、投递的职位、投递用户等;投递管理包括对简历进行查看与回复,具体如图5-10与图5-11所示。图5-10 用户简历列表界面图5-11 简历
39、管理界面5.2 核心代码实现本系统的核心模块主要分为工具类模块、授权模块与接口调用模块,每个模块通过vo实体类、控制层、业务层的配合进行实现。5.2.1 工具类模块工具里模块提供了通用函数类,主要通过静态函数方便对外调用,减少代码冗余。主要包括对象空属性校验、邮件发送、文件上传等功能,具体代码如图5-12、图5-13与图5-14所示。图5-12 邮件发送工具类图5-13 对象空属性校验类图5-14 文件上传类5.2.2 授权模块授权模块主要以shiro框架授权为主,用户登录时根据shiroRealm内部逻辑,查询角色与权限,具体如图5-15所示。图5-15 授权操作类5.2.3 接口调用模块接
40、口是对一系列复杂逻辑的封装,并在确保系统正常运行的条件下,对系统代码的一个优化操作。通过接口的调用,减少了开发人员的对重复代码的开发成本。本系统接口调用主要以HTTP协议为主,在子系统利用Feign框架调用其他子系统控制层暴露出的API接口,以工具类接口调用为例,如图5-16与所示。图5-16 接口调用模块第六章 系统测试6.1 功能测试本系统的功能测试使用不同的身份角色,分别对管理端和招聘网站系统进行功能的测试,查看系统各个模块的输入是否与输出相匹配,若不匹配,则对该模块进行完善。测试过程根据页面正常逻辑进行操作,根据输入,查看结果的输出是否理想,如相符,则该功能测试通过。整个功能测试对各个
41、模块不同功能进行添加、编辑、查询等操作,并以黑盒测试为主要测试方式,由于篇幅有限,部分功能测试如下表6-1所示。表6-1 功能测试表序号测试要求描述预期结果1应聘者注册,输入邮箱、用户名、密码、验证码正确成功成功2应聘者注册,输入邮箱、用户名、密码、验证码格式不正确失败失败3应聘者登录,输入正确的用户名与密码成功失败4应聘者登录,输入有误的用户名与密码失败失败5应聘者登录,填写信息不完整提交失败失败6应聘者注册,填写信息不完整提交失败失败7应聘者不进行登录,浏览职位信息与公司信息成功成功8应聘者在已经登录的情况下,查询简历投递记录成功成功6.2 集成测试集成测试相对功能测试来说,范围较广,测试
42、对象为模块之间接口的调用与集成,测试手段以白盒与黑盒方式为主,测试过程与功能测试相似,区别在于集成测试在验证设计的同时,还需进行需求的验证,找出与系统不匹配的设计和模块间存在的问题。表6-2为部分系统功能集成测试表。表6-2 集成测试表序号测试要求描述预期结果1管理员发布招聘信息,参数正确成功成功2公司人事发布招聘信息,参数正确成功成功3管理员发布招聘系,参数为空或格式错误失败失败4公司人事发布招聘信息,参数为空或格式错误失败失败5管理员对公司进行审核,比对与数据库的数据是否一致成功成功6应聘者查询应聘状态,查看是否与数据库的数据一致成功成功6.3 性能测试性能测试是指利用先进的自动化测试工具
43、模拟用户访问的场景,配置多种正常的、峰值的、异常的负载条件,进行测试系统的多个方面的性能指标。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试5。在招聘系统中,并发量较大的主要是普通用户进行访问的招聘网站,所以本文主要对招聘网站进行性能测试。(1)测试工具和环境测试工具:Apache JMeter,版本3.1测试环境:Microsoft Windows10,CPU:2.5GHZ,内存:16G,带宽20
44、M。测试账号:测试账号1(2)测试步骤 用户进入招聘网站的注册页面,进行注册。 用户上传简历并保存。 在首页选择一个职位,查看职位信息并投递简历。 查看简历投递记录状态。 点击注销按钮,退出系统。(3)测试结果系统在50人同时访问的情况下,系统能够正常运行,得出的数据较为正常。CPU占用率增加10-20%左右,消耗主要分布于首页查询多个职位信息操作;吞吐量为平均每秒处理16个请求;单条SQL执行耗时10-15ms,所以平均每秒能够最大执行100次单条SQL。根据结果分析,本招聘系统能够符合系统分析与设计的需求。第七章 总结该系统经过层层分析与设计,对校园招聘系统进行了一系列功能的开发与完善,主
45、要功能有:用户信息管理、简历管理、简历投递记录管理、职位信息管理等。该系统的优势在于新手有好,易上手,职位信息的高度汇集。经过这次校园招聘的设计与实现,我总结出不少的经验。虽然已经完成对系统的初步开发,但还是存在部分缺陷,还需不断完善。1、随着技术的不断改进与发展,模块化能够使系统更好地实现灵活性,这里的模块化不仅仅指系统的模块化,还有功能、组件的模块化。缺点是容易导致数据库表的增多,加大SQL查询的复杂性,对开发人员的功底有一定的要求。2、在本系统中,审核模块的流程不够成熟,导致审核的次数过多,对使用者带来一定程度上的不适。3、在招聘网站的界面显示中,由于对前端技术的掌握程度存在缺陷,导致显示的内容过于简单,无法对众多的数据加以利用,并进行集中的显示。4、在设计方面,遵循软件工程的开发流程是实现系统分析与设计的重要前提因素;在代码的开发方面,遵循阿里巴巴规范手册是提高代码可读性、复用性、规范性的其中一个条件;在时间管理方面,建议每天都要列出自己今天所做的事情,并根据每天所做的事情灵活地调整,在我看来,科学的时间管理比任何事情都重要。最后,通过这次招聘信息系统的开发,不仅对我个人的开发习惯,还对自身的技术都有了一定提高。参 考 文 献