针对vue-pure-admin精简版进行二次开发 后端Spring Boot

感谢前端大佬 xiaoxian521
本人代码仓库

采用技术栈: Spring Boot 3.2.6 + Spring Security + MyBatis Plus + Redis + Swagger + JWT + JDK17

目前已实现 登录、动态路由、jwt、验证码、动态权限校验、用户管理模块、个人中心
在这里插入图片描述

数据库设计

  • 用户表
  • 角色表
  • 菜单表
  • 权限表
  • 角色菜单表 1对n
  • 角色权限表 1对n
  • 角色用户表 1对1

初始化项目

  • 创建项目
  • 配置maven
  • 编写工具类(BaseResponse响应类,封装了响应成功和失败。ResponseCode状态码枚举。ServletUtils 封装了响应流处理数据)
  • 抽取出有共同字段的属性 BaseEntity(创建时间、创建人、更新时间、更新人)
  • 配置MySQL
  • 使用MybatisX生成代码
  • 配置MybatisPlus

登录

  • 引入相关依赖
  • 配置跨域请求WebMvcConfig
  • 配置SpringSecurity
  • 配置自定义登录成功(LoginSuccessHandler)
  • 配置自定义登录失败(LoginFailureHandler)

封装JWT拦截器

  • 引入相关依赖
  • 在application.yml中配置token信息 方便管理
  • 封装JWT拦截器 JwtAuthenticationTokenFilter
  • 封装JWT工具类 JwtUtil 生成和解析token
  • 自定义JwtAuthentication用于解析token中获取到的用户信息 (Authentication及其实现类的大部分属性没有提供setter方法)
  • 添加拦截器到SpringSecurity配置类中,拦截器拦截到请求,判断是否登录,未登录则拦截,登录则放行(放在UsernamePasswordAuthenticationFilter前面)

验证码拦截器

  • 引入相关依赖
  • 封装验证码生成工具(放在通用工具类中)
  • 封装常量池存放验证码需要的数据(位数、长度、宽度)
  • 封装验证码拦截器 VerifyCodeFilter
  • 添加拦截器到SpringSecurity配置类中,拦截器拦截到请求,判断是否登录,未登录则拦截,登录则放行(放在UsernamePasswordAuthenticationFilter前面)

配置Redis

  • 引入相关依赖
  • 配置端口等信息
  • 自定义Redis配置类
  • 封装RedisCache

异常处理

  • BaseException 自定义异常类
  • globalException 全局异常处理类
  • NoAuthenticationEntryPoint Security异常处理类
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐