企业后端系统通用模版

1 前言

        vue3 + springboot3前后端分离管理系统模版。

项目地址:ywz-manage: 游王子og管理系统通用模版

94ea3cbf767f45f29879cfcaa6e7af66.png

2 整体介绍

2.1 项目所用架构

        本系统使用jdk8、springboot2.5、mysql8、Redis构成,运行此项目请保证相应版本能够对应并且redis和mysql处于可连接状态。配置可以在application-dev.yml中进行配置。

56da5c6f1ca44b39b9dc4993a7a27a6c.png

2.2 目录结构

2.2.1 java包

        用于存放java代码,总体分为common、framework、project三大目录。

  • common:通用类包,主要存放项目中所使用的工具类。
  • framework:项目框架包,主要存放项目框架所涉及的类。
  • project:项目业务包,根据项目实际的需求所涉及的类请放入该目录下。

2.2.2 resources包

        项目资源目录,存放mapper文件以及application.yml文件。

  • application.yml通用配置,根据spring:profiles:active: 来确定具体调用哪个配置。
  • application-dev.yml本地环境配置,里面提供了所需的配置案例。
  • application-pro.yml线上生产环境配置,根据实际的需求进行配置。
  • application-dev.yml线上测试环境配置,根据实际的需求进行配置。

2.2.3 test包

        测试目录,开发时碰到需要测试的类和方法,请在该目录下进行测试。

2.3 准备sql

        项目中已经实现的用户表、角色表、权限表、菜单表、登录日志表、操作日志表、中国地区表相关的controller、service以及mapper的创建,所以需要在自己的数据库中创建相应的表结构。sql语句代码请查看这篇文章:企业项目中常用的表结构设计_项目表结构设计-CSDN博客

3 项目框架

3.1 jwt

        项目中使用jwt技术来作为Web应用中的令牌。在访问需要权限才能访问的接口时,需要在请求头中携带token才能通过。详细的技术文章请查看:Springboot与JWT_springboot jwt-CSDN博客

        在common目录下已添加JWT工具类,里面包含创建JWT令牌以及获取令牌中信息的方法。

3.2 springsecurity

        项目中使用spring security作为Web 应用安全性的完整解决方案。在framework.security目录下存放相应的配置文件。

65e6ef9220d24d6cbf6d459cdc673178.png

  • SecurityConfig:配置类,加密方式、认证管理器、过滤器等相关配置。
  • CustomUser:SpringSecurity用户实体类。
  • JwtAuthenticationTokenFilter:SpringSecurity与Jwt整合拦截器。
  • UserDetailsServiceImpl:用户核心认证类,其中loadUserByUserName为核心认证方法。
  • AccessDeniedHandlerImpl:授权失败处理类。
  • AuthenticationEntryPointImpl:认证失败处理类。

        详细的技术请查看:Springboot与SpringSecurity使用(1):介绍、登录验证_springboot security-CSDN博客Springboot与SpringSecurity使用(2):授权、自定义异常处理

3.3 mybatisplus

        项目中使用mybatisplus主流数据库操作框架。在common包下提供CodeGenerator类可以根据表生成对应的java文件。具体请查看文章:mybatis plus generator代码生成器

ac762e94d8094400acea8c19c9dd89b1.png

        在framework.mybatisplus目录下添加配置类解决使用IPage进行分页查询出现无法统计总条数问题。

9657dc09453745399c1f11d1c91902d8.png

3.4 redis

        使用redis作为项目中主要的缓存工具。具体使用方式请查看文章:Spring Boot 中 Redis 的使用

eaad2eb0daea4061917f53986c07768b.png

3.5 Swagger3

项目中使用Swagger3作为接口文档,具体的使用方式请查看文章:Springboot与swagger_spring boot swagger-CSDN博客

87a11d77e6a444678b597d95d39ffc93.png

3.6 aspectj

        aspectj目录存放了项目中需要的AOP切面,里面已经包含了操作日志切面类。

be1da0f353fa4cb5bcfc63486f8c97af.png

4 项目提供的工具类

        为了便于开发项目中提供了可以简化代码的工具类。

4.1 EasyPoiUtil

        封装了EasyPoi导入、导出Excel方法。具体使用方式请查看文章:Springboot与easypoi_easypoi-spring-boot-starter-CSDN博客

4.2 ResultResp

        通用响应结果类,为Controller层设计统一的相应结构。

4.3 StringUtils

        字符串工具类,包含了项目中常用的字符串处理方法,也包含了一些其他不是字符串操作的方法。具体使用方式请查看:字符串工具类-CSDN博客

4.4 TreeListUtils

        树型集合处理类,提供了将集合转成树型结构、和将树型结构转成普通集合的方法。具体使用方法请查看:企业项目中树型集合工具类-CSDN博客

4.5 NumberUtils

        数字工具类,提供了与数字相关的方法,比如单位转换、利率计算等方法。具体使用方法请查看:数字工具类-CSDN博客

4.6 FileUtils

        文件工具类,提供了文件类型校验,上传下载等方法。具体使用方法请查看:文件工具类-CSDN博客

5 项目功能概述

5.1 登录认证

5.1.1验证码

        当系统需要使用验证码验证时,可以开启application.yml中的验证码开关。

0ab5d0c685c349fb8f7f044091bbc119.png

        通过/system/captcha获取验证码以及识别码,验证码的有效期为2分钟。

835d01b9274e4cf79c2373e8c629bd2e.png

        识别码在header中。

0b3b3eefccf247c79a9bf89815296f80.png

        登录时需要传递识别码和验证码进行验证。

cd5a4236ad29421bab8f32dd01b0ef24.png

5.1.2 登录功能

        系统中提供了基础登录逻辑,包含同一账号连续5次登录失败后将限制一段时间登录功能。登录成功后获取用户角色信息功能、登录成功后记录登录日志功能。

5.1.3 统一门户中心认证管理器

        如果系统需要走门户中心进行认证,可以通过开启门户中心开关走SSO认证管理器。

fb7828d727744822a93f72779da10db9.png

        当开启后登录会走SSOAuthenticationManager,请根据实际的门户中心认证流程修改里面内容。

ff6e2998db114319bfa97ae40c8b6097.png

5.2 系统管理

5.2.1 菜单管理

        此为核心模块建议只允许管理员访问。菜单模块用于管理菜单信息,包括菜单的增删改查等操作。菜单分为两级,一级菜单和二级菜单。

  1. 菜单可以进行拖动调整菜单顺序,也可以设置菜单图标。
  2. 菜单地址为vue路由地址,新的组件需要添加路由需要在此处添加。例如:/home/index

 

5.2.2 权限管理

        此模块用于管理角色权限信息,与菜单分离可以做到更细致化的权限管理。用户登录时,会根据用户的角色查询出对应的权限。然后根据权限绑定的菜单进行菜单的显示。

  1. 查询当前系统中的所有权限
  2. 可以添加编辑相应的权限与菜单进行关联。
  3. 可以删除权限。

5.2.3 角色管理

        此模块用于管理角色信息,包括角色的增删改查等操作。角色与权限关联,一个角色可以关联多个权限。

  1. 查询当前系统中的所有角色
  2. 可以添加编辑相应的角色与权限进行关联。
  3. 可以删除角色。

5.2.4 部门管理

        此模块用于管理部门信息,包括部门的增删改查等操作。

  1. 查询当前系统中的所有部门
  2. 可以添加编辑相应的部门。
  3. 可以删除部门。

5.2.5 用户管理

        此模块用于管理用户信息,包括用户的增删改查等操作。用户与角色关联,一个用户可以关联多个角色。

  1. 查询当前系统中的所有用户
  2. 可以添加编辑相应的用户与角色进行关联。
  3. 可以删除用户。

5.2.6 标签管理

        此模块用于管理标签信息,包括标签的增删改查等操作。

  1. 查询当前系统中的所有标签。
  2. 可以添加编辑相应的标签。
  3. 可以删除标签。

5.2.7 日志管理

        此模块用于管理标签信息,包括标签的增删改查等操作。

  1. 查询当前系统中的所有标签。
  2. 可以添加编辑相应的标签。
  3. 可以删除标签。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游王子og

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值