摘 要
在如今这个人才需求量大的时代,各方企业为了永葆企业的活力与生机,在不断开 拓进取的同时,又广泛纳用人才,为企业的长久发展奠定了基础。于是,各个企业与部门机构,都不可避免地会接触到人力资源管理的问题。
Hrm 是一款人力资源管理系统,其主要功能模块有员工个人信息修改、请假、员工 的薪资管理、考勤管理、社保管理。其中考勤管理实现了员工考勤状态的修改与员工考 勤月报表的导出,以及通过员工考勤记录的导入来实现员工考勤状态的判断。社保管理, 主要实现了员工社保的计算以及明细的修改。薪资管理,实现了员工工资的调整,以及员工月工资报表的导出。
本项目采用了前后端分离的技术,前端是基于 Vue+ElementUI+Axios 开发的,后端 则是基于 Spring Boot+MyBatis Plus+ Jwt+Mysql 。本项目实现了权限菜单管理,通过员 工的权限动态渲染菜单,并动态生成路由。通过 Jwt token 来判断当前登录的员工以及员工的登录状态。
关键词:人力资源管理系统,Spring Boot ,Vue ,权限管理
前端技术
Vue
Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
Axios
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中,用于前 端向后端发起请求,它拥有全局的请求和响应的拦截,可以非常方便的处理请求异常的
问题。
后端技术
Spring Boot
Spring Boot 是 Spring 项目下的子项目,旨在快速开发应用,相比于 Spring ,Spring Boot 避免了繁重的xml 配置,它还采用了约定优于配置的软件设计范式,并提供了大量开箱即用的依赖模块,并且通过少量的配置,就能快速的搭建项目。
Spring Boot的出现,极大地简化了Spring应用的开发过程。它通过自动配置和起步依赖的方式,使得开发者可以更加专注于业务逻辑的实现,而无需花费大量时间在繁琐的配置上。相对于传统的Spring框架,Spring Boot的优势在于其简洁、高效的特点,大大提升了开发效率和代码质量。
除此之外,Spring Boot还提供了强大的监控和管理功能,例如健康检查、度量指标、外部化配置等,使得应用的管理和维护变得更加便捷。而且,Spring Boot还支持内嵌式容器,可以将应用打包成一个可执行的JAR文件,简化了部署和运行的流程。
总的来说,Spring Boot的出现为Java开发者带来了极大的便利和高效性,成为了当下流行的Java开发框架之一。随着Spring Boot的不断发展和完善,相信它会在未来的软件开发领域中发挥越来越重要的作用,成为开发者们的首选框架之一。
MyBatis Plus
MyBatis 是一款优秀的持久层框架,通过 XML 文件或注解配置来完成实体类与数 据库之间的映射,舍弃了传统的 preparedStatement 设置参数操作数据库和使用 resultSet获取结果集的过程。
MyBatis Plus 是由苞米豆团队开发的一款 MyBatis 增强工具,为简化数据库操作, 提高开发效率为生。在 MyBatis 的基础上提供了常用的 crud 方法,甚至不需要配置 Mapper.xml 文件都能对数据库进行基础的操作。除此之外,MyBatis Plus 还提供了自动 分页、代码生成的功能,通过配置相应的模板,就能一键生成绝大部分的后端代码,真正做到了简化开发。
JWT
JWT 全称 JSON Web Token,是目前比较流行跨域验证方案。相比于 session,session 生成的用户数据都会保存在服务器端,服务器只给用户的返回一个 sessionId ,下次访问 这个网站时,通过 cookie 将 sessionId 传递给服务器,从而得到相关的用户信息。毫无 疑问,在这种情况下,服务器的内存会被大大的消耗,会带来一些性能开销。若服务器 突然宕机,保存在服务器的用户数据就会消失,用户再次访问服务器就会被认为是第一次登录。
而 JWT 是保存在浏览器本地的,当用户第一次访问服务器,并且登录成功了,服 务器会根据用户的唯一标识信息(比如 id),生成一个加密的 token ,并返回用户信息。 只要用户每次访问服务器的时候,在请求头中携带上 token ,后端的拦截器获取 token,验证签证信息通过之后,就允许访问。
Swagger
Swagger 是一款用于生成 Api 接口文档的工具,通过简单的注解配置,就可以将后 端人员编写的接口,以文档的方式呈现。同时它还拥有简单的在线测试功能,相当于一个小型的 postman。
通过 Swagger文档,极大地减少了前后端人员的交流成本,将前后端正真的连接起来。
需要的小伙伴可以私聊哦