项目地址
GitHub
项目介绍
微人事是一个前后端分离的人力资源管理系统,项目采用SpringBoot+Vue开发。
该项目提供了详尽的设计文档,更新记录,以及开发过程中遇到的问题和解决思路,方便快速理解这个项目。
项目技术栈
后端技术栈SpringBootSpringSecurityMyBatisMySQL前端技术栈VueElementUIaxiosvue-router后端源码学习
pom文件排除Tomcat内嵌 Servlet 容器的依赖,添加Undertow依赖,提高应用性能。
Untertow 的特点:Servlet4.0 支持:它提供了对 Servlet4.0 的支持。 WebSocket 支持:对 Web Socket 完全支持,包括JSR-356,用以满足 Web 应用巨大数量的客户端。 嵌套性:它不需要容器,只需通过 API 即可快速搭建 Web 服务器。 灵活性:交由链式Handler配置和处理请求,可以最小化按需加载模块,无须加载多余功能。 轻量级:它是一个 Web 服务器,但不像传统的 Web 服务器有容器概念,它由两个核心 Jar 包组成,加载一个 Web 应用可以小于 10MB 内存。
其他redis缓存、mysql数据库连接、POI文档操作、mail、thymeleaf、websocket等依赖。
基于SpringSecurity处理权限问题配置SpringSecurity访问策略,包括登录处理,登出处理,资源访问,密码基本加密等等。
自定义投票鉴权决策管理器AccessDecisionManager
自定义AccessDeniedHandler,当一个已授权(或已登陆)的用户请求访问他权限之外的资源时, 这个类的handle方法将会被调用, 定义如何处理这个请求。
自定义securityMetadataSource,实现FilterInvocationSecurityMetadataSource接口,用来储存请求与权限的对应关系.
POI生成Excel
还有其他的POI实现Excel导入、SpringMVC文件下载、Java中邮件的发送、在线聊天功能等功能,都有实现源码。
前端源码学习
axios请求封装,请求异常统一处理对axios进行了简单的封装,基于axios中的拦截器功能。
登录状态的保存在登录操作执行成功之后,通过commit操作将数据提交到store中,核心代码如下:
还有其他的将请求方法挂到Vue上、登录成功后动态加载组件、Vue组件复用等功能,项目中都有详尽的文档说明。
结语
见多识广,识广的前提是见多,小伙伴们,加油吧