ssm框架 mysql事务管理_基于SSM框架的后台权限管理系统

该项目源码地址:https://github.com/lastwhispers/permission

项目在线地址:http://39.105.49.50:8080/permission/login.html

初始用户:

系统管理员:admin/admin

经理:manager/manager

销售主管:salemanager/salemanager

销售员:saler/saler

临时工:casual/casual

1. 简介

基于SSM框架简单的后台管理系统,整合spring + springmvc + shiro + mybatis + esayui。包含许多基础模块(用户管理、角色管理、菜单管理、角色权限管理、用户角色管理、日志管理、数据库监控)。

2. 项目演示

2.1 登录

使用md5加密,shiro权限校验

43b007b2973e

登录页面

2.2 用户管理

(1)ajax异步模糊搜索

43b007b2973e

ajax异步模糊搜索

43b007b2973e

模糊搜索

(2)新增

43b007b2973e

新增

43b007b2973e

新增成功

(3)修改

点击修改

43b007b2973e

修改

填写修改的信息

43b007b2973e

修改成功

(4)删除

选中一行,即可删除

43b007b2973e

删除

43b007b2973e

删除成功

(5)导出excel

支持excel导出

43b007b2973e

excel导出

43b007b2973e

excel

(6)excel导入

支持excel导入,并更新导入信息。

修改excel已存在的数据,并新增一行。

43b007b2973e

修改excel

将修改的excel导入系统

43b007b2973e

导入excel

43b007b2973e

上传成功

43b007b2973e

excel导入

2.3 角色管理

与用户管理类似。

43b007b2973e

角色管理

2.4 菜单管理

菜单管理对应系统左侧的菜单,不同权限用户看到不同的菜单。

43b007b2973e

菜单管理

并且支持菜单的添加修改删除,以及菜单详细内容的修改。

43b007b2973e

添加修改删除

43b007b2973e

菜单详细内容

2.5 角色权限管理

通过角色控制用户可以看到的菜单。

43b007b2973e

角色权限管理

2.6 用户角色管理

在该页面给用户设置角色,可以是多个角色。

43b007b2973e

初始

43b007b2973e

新增角色

43b007b2973e

保存成功

刷新页面,新增的角色生效。

43b007b2973e

image.png

2.7 日志管理

使用aop日志,记录用户的操作。刚才的操作日志,都被记录了下来。

43b007b2973e

日志管理

2.8 数据库监控

集成druid的监控页面。

43b007b2973e

数据库监控

3. 系统权限设计思路

每个用户登陆进去看到的菜单应该取决于他们所拥有的权限,对于不同的用户,他们进入系统后看到的菜单可能是不同的。

如果对每个用户都去设置权限,操作起来是非常繁琐的。实际中很多用户的权限是一样的。我们把这多个权限合起来,给它一个名称叫角色(有的系统称为“用户组”)。这样我们通过角色设置权限,即一个角色可以有多个权限(菜单项),一个权限也可以被多个角色同时拥有。在这种情况下,角色和权限之间就是典型的多对多关联

每个角色包含了很多权限(菜单),那么用户指定为某种角色,即拥有该角色的权限。实际中一个用户可能同时拥有多种角色,而一个角色又包含了很多个用户。那么用户与角色之间又是典型的多对多关系。

一个标准的权限系统包括哪些表呢?刚才我们提到了用户、角色、权限,这就是三张表。用户与角色的关系是多对多,对于多对多关系,我们通常会使用中间表来存储它们的关系。那么对应的角色与权限的关系,也会有中间表。因此,权限系统涉及的表就有5个了。

43b007b2973e

系统权限

通过用户对应的角色加载角色对应的菜单。

集成shiro做后端url级别鉴权、方法级别鉴权,甚至方法内的鉴权。由于shiro鉴权每次都要查询数据库,所以使用redis缓存菜单信息。

4. 日志系统设计思路

5. 如何运行项目

5.1 本地运行

找到resource目录里面有redis和sql文件

第一步:启动redis和mysql

第二步:导入resource/sql/permission.sql文件,不是classpath下面的reset.sql

第三步:导入项目,修改db.properties中的数据库账号密码

第四步:启动maven项目

5.2 Dockerfile

提前打好war,或者重写Dockerfile命令构建war

# 构建镜像

docker build -t gj/permission .

# 运行

docker run -d -p 8081:8080 gj/permission

5.3 docker-compose

提前打好war

# war、dockerfile、docker-compose在同一目录

docker-compose up -d

# 查看镜像

docker-compose ps

# 移除镜像

docker-compose down

5.4 其他

弹窗在adminjs/index.js的start()方法,可以修改或者关闭

js/crud.js封装了所有的crud前端的代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值