一、选题背景、研究意义及文献综述
1.选题背景
人事管理系统在企业后台管理系统中甚是常见,它的主要用途在于加强各个部门之间的联系和提高工作效益。通过人事管理系统,人事组织部门能做到一人为中心,各个部门实现资源共享,并实现即时通讯。所以通过人事管理系统,就能够把分散的企业单位的职工信息进行统一收集管理,通过更加专业化的管理系统来调动企业运用,为企事业单位提高生产力和解放传统员工的手工统计。
2.研究意义
实现各个部门之间资源共享,增强企业即时通讯,志在提高员工工作效率。简化繁琐的手工统计、信息汇总和工资业务等大量手工工作,让人事组织和工资管理工作在人事组织相关的各部门之间活跃起来。
3.文献综述
现代JAVA EE的企业级应用更加偏向于简化配置,一方面,后端框架Spring Boot作为后起之秀,带来了全新的自动化配置解决方案,使用Spring Boot可以快速创建基于Spring生产级的独立应用程序,简化了程序员对于SSM框架的整合配置,做到快速部署运行,降低了开发工作量;另一方面,前端Vue技术的兴起,与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动[1,2,4,7,11,14]。
内容主要是后端开发增删改查接口,用来供前端通过axios发送各类请求来调用后端开发的接口。
按照前后端分离可分为以下几个方面:
后端开发如下:
(1)、实体类:当数据库的各张表全部设计完毕后,根据每张数据表分别设计一个与之对应表的各个字段的成员变量,这里需要注意一点是,Java类中所有成员变量的取名最好跟数据表中的字段名称完全一致,或者也可以通过成员变量的驼峰命名法来匹配数据表的字段名称,这里举个例子,比如有数据表字段名user_ID,那么成员变量命名必须为驼峰命名的userID[2];
(2)、持久层:更具业务需求为数据库中经常用到的几张表设计对应的SQL脚本语句,结合MyBatis持久层框架编写SQL脚本,一般情况下,通过MyBatis框架编写持久层,为了迎合MyBatis框架的底层实现原理动态代理,都会为提供相应的接口类,SQL查询脚本的编写都会依据接口类中方法[2,7,14];
(3)、接口层:根据业务需求编写接口方法调用持久层中设计好的增删改查方法,并将返回值保存至相应实体类中,接口层通常包含接口类和它的实现类,之所以这么分层,为了以后项目的扩展和解耦[1,2,12];
(4)、控制层:根据业务需求开发相关接口,接口中的路径用来提供给前端请求,并将请求的JSON数据返回给前端,这里的JSON数据是前后端分离项目中数据交换最常用的数据格式[1,2];
(5)、配置层:为Spring Boot和Spring框架提供基本的配置,比如用户页面访问权限的配置Spring Security,用于消息点对点发送的WebSocket的配置,登陆系统时验证码的相关配置等等[1,5]。
前端开发如下[4,6,10,11]:
(1)、template组件:此模块供页面基本的组建的搭建,这里的组件可以是Element组件,Element官方为开发者提供了丰富的交互式界面控件,开发者直接在Vue中映入Element库即可使用各种控件;
(2)、script脚本:此模块用于页面控件的逻辑实现,由于在Vue中引入了Node.js库,用Node.js提供的丰富的js脚本库,可以通过axios向后端发送各种请求,比如get、post请求等等,在向后端发送各种请求后会对返回的数据分析清洗存储,由于Vue的数据是绑定式的,当此模块中数据更新了,template模块中组件用到的数据也会自动更新,相比传统jsp而言,少了很多dom节点的操作,所以,前端开发,这个模块是重点难点;
(3)、style样式:此模块为template模块的各种组件提供在页面中的完美布局和组件自身本身的系列属性设置,样式的好坏直接关系的用的用户体验,所以一般由专业人事提供页面布局个管控。
二、研究的基本内容,拟解决的主要问题
1、研究的内容
(1)MyBatis数据库框架的实际运用及底层动态代理技术解读
对MyBatis持久层技术加以运用,通过MyBatis来实现对数据库的增删改查,并掌握MyBatis底层实现原理动态技术的执行过程,只有掌握动态代理背后的反射的应用,才能完全掌握在MyBatis中,为什么一个接口类和一个XML文件就能完成对数据库的增删改查的操作;
(2)人事项目中关于Spring Boot自动化配置和手动配置
对Spring Boot一些常用的第三方库提供的默认化的自动配置方案加以解读了解,比如,在系统中要实现不同用户登陆后访问的页面的不同,该如何继承WebSecurityConfigurerAdapter类来完成对不同用户登录系统后的页面的权限访问的设置,再如,如何通过配置WebSocket来完成消息点对点发送以及消息群发的功能;
(3)人事管理系统中业务运行流程
对Spring MVC组件与流程加以强化掌握,大致了解当项目启动后,系统的运作流程,掌握Spring MVC中每个组件的执行顺序和每个组件具体的作用,并深入Spring MVC组件的开发;
(4)人事管理系统中加入Redis缓存技术
对Redis缓存技术在Java Web中加以运用,提高系统查询效率,我们都知道,当一个系统访问量过大,要解决高并发的前提,自然少不了加入缓存,毕竟MySql是基于硬盘的操作,而Redis是基于内存的缓存,因为CPU对内存的读取的读取速度远快于硬盘的读取速度,所以设法添加缓存技术是必备的;
(5)Vue的基本使用以及在Vue中使用Element组件
对Vue官网的官方文档加强学习,深入了解Vue的组件,并运用至项目前端的界面开发,取代传统JSP页面视图技术,通过Vue来构建SPA程序,之后在Vue中使用Element最常用组件,掌握Elenemt常用组建的基本属性和用法,通过使用Vue+Element技术,方可完整的剥离出前端项目;
(6)基于JAVA的中小企业人事管理系统功能
Hr用户登录后,可对员工信息表中的数据进行添加、修改和删除,也可以将系统中的员工信息导入到本地,还可以将本地的员工信息excle表格导入到系统中,供其他员工查看。当系统中的员工信息较多时,要实现分页显示的功能,并提供按姓名的区分来快速查找相关员工的个人信息。
2、拟解决的主要问题
(1)通过使用Vue+Element技术,旨在摆脱传统JSP+Servlet技术,开发独立于后台的单页面应用,做到彻底的前后端分离;
(2)通过在Spring Boot整合和开启Redis缓存技术,实现快速查询数据,做到满足高并发访问的一小步;
(3)掌握Spring IOC和Spring AOP这两个Spring框架最基本的功能,方可了解项目中使用Spring框架后为什么不需要对注入的的对象再new一个了,以及切面的执行流程;
(4)熟悉MyBatis底层是怎样通过Java反射技术来用一个或多个接口类实现javassist动态代理技术,再进一步探寻MyBatis框架中接口类+XML文件如何简简单单实现对数据库中表的增删改查的“奥秘”。
三、研究步骤、方法
对于一个完整的JAVA EE级Web应用的开发,自然是要根据相关前后端的技术逐层开发,为此,我选择当下国内流行的SSM框架开发微人事,为此,先假设数据库表的创建已经完成,在此基础上具体开发步骤方法如下:
后端Spring Boot框架实现:
(1)pojo实体层开发
对数据库表相关字段加以声明,pojo层中的类用于保存从数据库表的读取到的各个字段的信息;
(2)mapper持久层开发
提供接口类,并配置与接口类相对应的XML文件,XML文件用以编写增删改查语句;
(3)service接口服务层开发
提供接口类,并实现与接口类相对应的实现类,实现类用以调用mapper持久层写好的增删改查方法;
(4)controller控制层开发
通过注解提供接口路径调用访问,接受前端发送的Ajax请求,并返回给前端对应的实体模型类,由前端解析成JSON数据格式。
前端Vue框架实现:
(1)template标签对
编写HTML标签,设计视图组件;
(2)script标签对
编写JS脚本,通过路由和axios发送Ajax请求并获取数据,获取原始数据后将其转换成JSON数据,将JSON绑定至data声明的变量中,在template中与data声明的变量做了绑定的组件的数据自动会发生变化。
(3)style标签对
编写CSS样式,设计视图组件排版。
课题研究的流程图如图1-1:
图1-1 流程图
四、研究工作进度计划
周次
|
起止日期
|
工作内容
|
具体要求
|
1
|
20XX.2.17-21
|
熟悉题目;文献调研,写出开题报告初稿
|
按要求查阅中国知网和会议文献,开题报告撰写
|
2
|
20XX.2.24-28
|
文献分析;
|
查询文献和同类软件;开题报告撰写和答辩
|
3
|
20XX.3.2-6
|
需求分析,文献补充
|
课题需求分析和描述;外文文献查阅;开题报告撰写
|
4
|
20XX.3.9-13
|
查阅和翻译外文文献;开题报告答辩
|
外文文献翻译;开题报告答辩
|
5
|
20XX.3.16-20
|
系统分析
|
分析系统功能和要求
|
6
|
20XX.3.23-27
|
系统分析与设计
|
设计系统管理流程
|
7
|
20XX.3.30-4.3
|
系统设计
|
数据库设计、pojo实体层开发
|
8
|
20XX.4.6-4.10
|
系统设计
|
mapper持久层开发
|
9
|
20XX.4.13-4.17
|
系统实现;
|
mapper持久层开发
|
10
|
20XX.4.20-4.24
|
系统实现;毕业设计中期检查
|
service服务层开发
|
11
|
20XX.4.27-5.1
|
系统实现
|
controller控制层开发
|
12
|
20XX.5.4-8
|
系统实现
|
前端Vue.js的开发
|
13
|
20XX.5.11-15
|
系统实现
|
完成前端Vue.js的开发
|
14
|
20XX.5.18-22
|
系统测试和完善;
撰写毕业论文
|
系统初验;
撰写毕业论文
|
15
|
20XX.5.25-29
|
系统验收;撰写毕业论文
|
系统验收和答辩;
提交毕业论文
|
16
|
20XX.6.1-5
|
论文答辩
|
准备论文答辩材料
|
17
|
20XX.6.8-12
|
论文答辩
|
答辩后完善论文;
整理毕业设计资料
|
18
|
20XX.6.15-19
|
资料归档
|
按要求归档所有资料
|
五、主要参考文献
[1]Spring Boot+Vue全栈开发实战 / 王松著.—北京:清华大学出版社,2019
[2]Java EE互联网轻量级框架整合开发:SSM框架(Spring MVC+Spring+MyBatis)和Redis实现/杨开振等著.—北京:电子工业出版社,2017.7
[3] https://www.github.com/ (GitHub官网)
[4] https://cn.vuejs.org/v2/guide/index.html (Vue.js官网)
[5] https://spring.io/projects/spring-boot#overview (Spring Boot 官网)
[6] https://element.eleme.io/#/zh-CN/component/icon (Element组件官网)
[7] https://mybatis.org/mybatis-3/ (MyBatis官网)
[8] http://www.redis.cn/ (Redis中文网)
[9] https://mvnrepository.com/ (Maven仓储官网)
[10] http://nodejs.cn/ (Node.js中文网)
[11] http://www.axios-js.com/zh-cn/docs/ (axios中文网)
[12] https://spring.io/guides (Spring学习指南)
[13] https://docs.oracle.com/javase/8/docs/api/ (Java API)
[14] Spring MVC+MyBatis开发入门到项目实战 / 朱要光编著. —北京:电子 工业出版社,2018.2 ISBN 978-123-33390-3
六、系(教研室)评议意见
评议人:
年 月 日