以ruoyi为例介绍Spring AOP(面向切面编程)

目录

一:数据权限展示

二、数据权限作用及操作

三、数据权限后端代码分析

1、controller层

2、Service层

3、Mapper层

四、AOP 类DataScopeAspect 处理注解@DataScope


Ruoyi是一个基于Spring Boot和Vue.js的开源后台管理系统,内置了强大的权限管理系统,而Spring AOP则是Spring框架的一个核心特性,用于处理横切关注点,如权限控制。所以RuoYi-Vue的数据权限控制功能为例,介绍Spring AOP(Aspect Oriented Programming 面向切面编程)部分内容。

一:数据权限展示

进入若依角色管理

在普通角色的操作中点击更多,数据权限

可以对数据权限进行控制。 

二、数据权限作用及操作

使用数据权限,我们可以让具有不同权限的用户看到的数据有差别,我们进行如下操作来对比说明。

admin 的角色为超级管理员,超级管理员设置为具有访问全部数据权限

gwz的角色为普通角色,普通角色设置为只有访问本部门数据权限,其所属部门为测试部门

如下:

admin用户

gwz用户

三、数据权限后端代码分析

1、controller层

就是通过处理"/list"路径的GET请求,检查当前用户是否具有执行system:users:list 的权限,并将查询结果封装成 TableDataInfo( 分页查询返回结果类对象返回给前端。

2、Service层

3、Mapper层

根据用户角色的权限对数据进行过滤。

四、AOP 类DataScopeAspect 处理注解@DataScope

@DataScope注解

AOP 类DataScopeAspect 处理注解@DataScope 

根据当前登录用户的信息,判断是否为超级管理员,如果不是,则调用dataScopeFilter方法进行数据权限过滤。这样非管理员就会受到限制,管理员可以访问全部数据; 

AOP 类DataScopeAspect 对于各种权限最终添加的SQL 语句及作用

此切面在目标方法执行前会拦截,检查用户的角色和数据权限配置,然后根据不同的权限类型生成相应的SQL条件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值