简介
近来楼主抽时间整理了一个基于 Spring Boot 前后端分离的 web 框架,该框架基于 RBAC 思想,即 Role-Based Access Control。在该思想中,
用户直接和角色关联,一个用户至少可以有一个角色;角色与权限(菜单)关联,一个角色至少可以有一个权限。
该框架同时还实现了动态路由,所有路由信息全部存储于数据库中,可灵活配置。
该 web 框架的后端以 Spring-Boot 为基础,整合了 Spring Security、Spring Actuator、Spring AOP、Spring Quartz、MyBatis、Druid、PageHelper、Swagger 2.0、Knife4j、POI、FastJson等框架,而前端则以 Vue.js 为基础,同时整合了 Element UI、Axios、Vuex、Vue Router、Moment等框架。
系统功能
- 用户管理:对系统用户的基本信息实现管理,例如新增用户、修改用户、配置用户角色、删除用户等。
- 部门管理:对系统使用者所属部门的基本信息进行管理。
- 权限管理:即菜单/按钮管理,实现了动态路由、按钮权限等。
- 角色管理:对系统用户所属的角色信息进行基本管理。
- MySQL监控:引入了 Druid Monitor 实现对 MySQL 的良好监控功能。
- Redis监控:Redis 监控主要是监控系统所使用的缓存,包括一些基本信息等等。
- Swagger文档:Swagger 文档以可视化的方式将后端的URL暴露出来,便于前端开发工作。
- Knife4j文档:Swagger 文档的升级版,适当的美化了 Swagger 的界面。
- Actuator监控:引入了 Spring-boot-admin-starter-server,以可视化的方式对系统的健康状态进行监控。
- 系统备份:手动备份数据库表,亦可下载备份文件或者手动还原。
- 操作日志:记录系统中对数据修改敏感的操作基本信息。
- 附件管理:管理系统附件文件夹下的所有附件。
- 定时任务:可以让预先定义的任务以一定的周期执行。
- 邮件管理:暂未实现,待更新。
- Echarts图表库:Echarts 图表库的示例。
- Element图标库:展示 Element 的所有图标样式,并且点击图标即可复制图标对应的icon名。
使用说明
- 克隆或者下载 iboot、iboot-web、iboot-admin 和 iboot-attachment 这四个项目。
- 将 iboot-attachment/BackUp 目录下的SQL文件导入数据库中。
- 将 iboot-web 导入IDE中,并依次执行 npm install、npm run serve 来运行前端项目。
- 将 iboot-admin 导入IDE中并运行。(非必须,这个是Actuator监控的服务器,提供了可视化的方式对注册到服务器的应用进行监控)
- 将 iboot 导入IDE中并运行 BackApplication.java。
系统界面
项目组成
Gitee | Github | |
后端(back end) | ||
前端(front end) | ||
附件(attachment) | ||
admin-UI(admin-UI) |
运行环境
环境(Environment) | 版本(version) |
Java | 1.8.0 |
MySQL | 8.0.21 |
Redis | 3.2 |
@vue/cli | 4.5.6 |
写在后面的话
该框架是笔者整理的前后端分离的 web 框架,仅仅实现了基本的权限控制功能。如有其他功能尚未实现的,还请读者理解或者建议。笔者后续也会慢慢更新一些新的功能。
最后,大家如果觉得可以的话,欢迎大家 fork and star。