基于Vue+JavaSSM+MySQL的中小企业人事管理系统设计与实现

目 录
第一章 绪论 1
1.1 人事管理系统背后的意义 1
1.2 国内外研究现状及发展 1
1.3 研究的内容 3
1.4 本论文的立项背景 6
第二章 实验材料与方法 8
2.1 概述 8
2.2 实验材料与方法 9
第三章 实验结果与讨论 12
3.1 持久层操作数据库 14
3.1.1 接口类说明 14
3.1.2 xml文件常见sql标签对 15
3.1.3 数据库文件及模型设计 19
3.2 服务层获取持久层返回值 26
3.3 控制层提供RESTful服务 27
3.4 axios请求接口的研究 28
第四章 结论与展望 31
4.1 结论 31
4.2 对进一步研究的展望 31
参考文献 32
致 谢 33
附 录 34
本论文主要从事人事管理系统的开发,使用当前备受中小企业欢迎的前后端分离技术来开发出满足企业人事管理实际需求的业务功能。
现代JAVA EE的企业级应用更加偏向于简化配置,一方面,后端框架Spring Boot作为后起之秀,带来了全新的自动化配置解决方案,使用Spring Boot可以快速创建基于Spring生产级的独立应用程序,简化了程序员对于SSM框架的整合配置,做到快速部署运行,降低了开发工作量[1,5];另一方面,前端Vue技术的兴起,与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动[2,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模块的各种组件提供在页面中的完美布局和组件自身本身的系列属性设置,样式的好坏直接关系的用的用户体验,所以一般由专业人事提供页面布局个管控。

package org.javaboy.vhr.controller;

import org.javaboy.vhr.model.ChatMsg;
import org.javaboy.vhr.model.Hr;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Controller;

import java.security.Principal;
import java.util.Date;

@Controller
public class WsController {
    
    
    @Autowired
    SimpMessagingTemplate simpMessagingTemplate;
//    handleMsg方法为:消息点对点发送
    @MessageMapping("/ws/chat") //此注解用来接收前端消息
    public void handleMsg(Authentication authentication, ChatMsg chatMsg) {
    
    
        Hr hr = (Hr) authentication.getPrincipal(); //获取当前登录用户信息
        chatMsg.setFrom(hr.getUsername());
        chatMsg.setFromNickname(hr.getName());
        chatMsg.setDate(new Date());
        //发送消息至消息代理broker,前端可以通过/user/queue/chat订阅broker中的消息
        simpMessagingTemplate.convertAndSendToUser(chatMsg.getTo(), "/queue/chat", chatMsg);
    }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/newlw/article/details/132793380