新项目,从0到1,SpringBoot+Vue.js权限管理系统,拿去做毕设

大家好,我是 jonssonyan

最近把以前做的权限管理系统重新整理了一下(将一些不规范的地方规范了一下,并且在关键地方写了注释),代码全部开源,这个项目是以现在主流的前后端分离模式开发的,包含前端(authority-ui)和后端(authority)两个工程,项目的开源地址在文章的最后

适宜人群

你可以借助本项目,学习 Java、SpringBoot、MybatisPlus、Shiro、JWT …

一个系统中权限管理是最基础的功能,你可以将本项目作为脚手架,在它的基础上进行二次开发,可以提高你开发软件的速度。

技术栈

后端:

  • JDK 1.8
  • MySQL 5.2.29
  • SpringBoot
  • MybatisPlus ORM 框架
  • Shiro 权限控制
  • JWT 单点登录
  • Hibernate Validator 参数校验
  • Swagger2 API 文档工具

前端:

  • JavaScript
  • Vue.js
  • Element
  • Axios
  • Node v14.17.0
  • yarn 1.22.21

项目简介

基于 SpringBoot 和 Vue.js 的权限管理系统,项目中没有涉及到过多的业务,主要是权限系统的设计与实现,基于 RBAC 权限模型,实现用户->角色->权限之间的关系,一个用户拥有一个或者多个角色,角色拥有多个权限,并且系统还实现了角色和菜单的动态关联。

以下是数据库模型的关系图:

项目的 SQL 文件在https://github.com/jonssonyan/authority/blob/master/docs/sql/在运行项目之前需要先将数据库:authority 建好,数据库中一共有 9 张表,user 表中默认有两个账户,分别是管理员账户和普通用户账户,当你启动好项目之后可以直接使用默认的账户进行登录,当然你也可以注册一个账户,新账户默认的角色是 user,也就是普通用户。

  • 用户名: admin 密码: 123456 (管理员角色)
  • 用户名: user1 密码: 123456 (普通用户角色)

登录管理员账户之后,自然看到的菜单更多,权限最全。管理员账户可以为每个账户分配角色,并且可以为角色授权,如果管理员将角色为 user 的查询分类的权限收回,那么普通用户账户查询分类的时候就会提示“没有权限”。

此时登录普通用户角色的账户,将不会有查询分类的权限。

项目的主要菜单是用户管理,角色管理,权限管理,实现了用户,角色,权限的动态控制,分类管理,商品管理,订单管理只是为了展示权限控制的效果,并没有实际的作用。另外角色和菜单也是动态关联的,角色表 role 和菜单表 menu_list,通过第三张表role_menu_list进行多对多关联。

视频教程

如果你看文字版教程看不懂,可以看我录制的视频教程。

项目介绍:https://www.bilibili.com/video/BV19U421d7CM/

项目部署:https://www.bilibili.com/video/BV1Fy421h7me/

项目开源地址

Spring Boot+Vue.js 权限管理系统前端: https://github.com/jonssonyan/authority-ui

Spring Boot+Vue.js 权限管理系统后端: https://github.com/jonssonyan/authority

欢迎 PR,感谢 Star

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/468776.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django学习全纪录:编写你的第一个 Django 应用,Django内置数据库的配置,以及扩展性的数据库介绍和配置

天下古今之庸人,皆以一惰字致败;天下古今之人才,皆以一傲字致败。——[清]曾国藩 导言 大家好,在上一篇文章里,我们一起学习了Django的视图以及路由,并且对Django的应用有了初步的认识,掌握了…

vim编辑代码后退出编辑显示vim编辑的内容

在/etc/profile.d/下新建terminal.sh: 在terminal.sh里添加如下代码: #!/bin/bashexport TERMlinux 然后同步文件到内存: source /etc/profile

第二十九回 施恩三入死囚牢 武松大闹飞云浦-分布式版本控制系统Git使用

武松要蒋门神答应三件事:离开快活林、东西都归还施恩,公开对施恩赔礼道歉,不许在孟州住。蒋门神不得已都答应了,灰溜溜地离开了孟州城。 一个月之后,天气转凉,张都监调武松到孟州城,做了他的亲…

JDK Development Kit 21.0.2的安装和使用

下载链接:https://www.oracle.com/java/technologies/downloads/#jdk21-windows,选择Windows-x64 Installer,下载下来的是一个exe程序,双击进行安装。 安装时可以修改安装位置,其余选项都不用修改。我的安装位置选择默…

猫头虎分享已解决Bug || Invariant Violation in React: Element Type is Invalid ‍

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

中小学信息学奥赛CSP-J认证 CCF非专业级别软件能力认证-入门组初赛模拟题第二套(选择题)

CSP-J入门组初赛模拟题二 1、在计算机内部用来传送、存贮、加工处理的数册或指令都是以()形式进行的 A、二进制 B、八进制 C、十进制 D、智能拼音 答案:A 考点分析:主要考查小朋友们计算机相关知识,在计算机中都是采用二进制运算&#…

猫头虎分享已解决Bug || TypeError: can‘t pickle _thread.lock objects

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

四、Mybatis配置文件深入

1.核心配置文件SqlMapConfig.xml 1.1 MyBatis核心配置文件层级关系 1.2MyBatis常用配置解析 1)environments标签 其中,事务管理器(transactionManager)类型有两种: JDBC:这个配置就是直接使用了JDBC 的提交和回滚设…

Unity类银河恶魔城学习记录7-3 P69 Setting up sword‘s aim源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili PlayerAimSwordState.cs using System.Collections; using System.Collect…

证明之毕达哥拉斯定理

毕达哥拉斯定理 毕达哥拉斯的著名定理所讲的是,假设一直角三角形的三边长为a、b和c,其中c是斜边长(直角所对的边),则 a 2 b 2 c 2 a^2b^2c^2 a2b2c2。这个定理有若干种证明,其中有一种特别简短&#xf…

GPT4:画一只小怪兽,但是不断升级

请你画一只1级的萌怪兽 请你画一只3级的萌怪兽 请你画一只5级的小怪兽 请你画一只10级的小怪兽 请你画一只50级的怪兽 请你画一只100级的怪兽 怪兽被闪电劈了一下,变成了一只0.1级的可爱小怪兽

【十七】【C++】stack的简单实现、queue的常见用法以及用queue实现stack

stack的简单实现 #include <deque> #include <iostream> using namespace std; namespace Mystack {template<class T, class Container std::deque<T>>class stack {public:stack(): _c(){}void push(const T& data) {_c.push_back(data);}void …