前言:我是极客的Code,从事计算机开发行业数年,专注Java领域,专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务
项目名
基于SpringBoot的人事管理系统
技术栈
SpringBoot+Vue+MySQL+Maven
开发语言:Java
数据库:MySQL
系统架构:B/S
后端:SpringBoot(MyBatis)
前端:Vue
工具:IDEA,JDK1.8,Maven
人事管理系统是一个基于B/S架构的网站,旨在协助组织高效管理其人力资源。这一系统充当了人力资源部门的得力助手,为企业提供了全面的员工信息和业务流程管理功能。
这个系统的背景是,随着企业规模的不断扩大和全球化竞争的加剧,人力资源管理变得日益复杂。传统的纸质档案和手工管理方法已经无法满足快速发展的需求,因此,人事管理系统应运而生。
这个系统的意义在于,它帮助企业实现了员工招聘、培训、绩效评估、薪资管理、福利分配等关键人力资源管理活动的自动化和集成。通过统一的平台,管理者可以轻松访问员工信息、生成各种报表,提高了决策的准确性和效率。
现状下,人事管理系统已经成为大多数企业的标配。它们通过数字化的方式管理人力资源,减少了繁琐的手工操作,提高了工作效率,降低了人力资源管理的风险。此外,这一系统也有助于员工自我服务,提升了员工满意度。
总之,人事管理系统是现代企业管理不可或缺的一部分,它的发展和应用不仅反映了科技的进步,也促进了企业的可持续发展和竞争力的提升。
B/S架构
该项目是前后端分离
前端后台是Vue2脚手架
前端前台是Html+Layui+Vue.js
/**
* 权限(Token)验证
*/
@Component
public class AuthorizationInterceptor implements HandlerInterceptor {
public static final String LOGIN_TOKEN_KEY = "Token";
@Autowired
private TokenService tokenService;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//支持跨域请求
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with,request-source,Token, Origin,imgType, Content-Type, cache-control,postman-token,Cookie, Accept,authorization");
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
// 跨域时会首先发送一个OPTIONS请求,这里我们给OPTIONS请求直接返回正常状态
if (request.getMethod().equals(RequestMethod.OPTIONS.name())) {
response.setStatus(HttpStatus.OK.value());
return false;
}
IgnoreAuth annotation;
if (handler instanceof HandlerMethod) {
annotation = ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class);
} else {
return true;
}
//从header中获取token
String token = request.getHeader(LOGIN_TOKEN_KEY);
/**
* 不需要验证权限的方法直接放过
*/
if(annotation!=null) {
return true;
}
TokenEntity tokenEntity = null;
if(StringUtils.isNotBlank(token)) {
tokenEntity = tokenService.getTokenEntity(token);
}
if(tokenEntity != null) {
request.getSession().setAttribute("userId", tokenEntity.getUserid());
request.getSession().setAttribute("role", tokenEntity.getRole());
request.getSession().setAttribute("tableName", tokenEntity.getTablename());
request.getSession().setAttribute("username", tokenEntity.getUsername());
return true;
}
PrintWriter writer = null;
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json; charset=utf-8");
try {
writer = response.getWriter();
writer.print(JSONObject.toJSONString(R.error(401, "请先登录")));
} finally {
if(writer != null){
writer.close();
}
}
// throw new EIException("请先登录", 401);
return false;
}
}
点赞收藏关注+厚台了解更多(程序设计/定制/讲解/调试运行)