[Ruo Yi]Spring AOP在RuoYi中的应用

目录

前言

一、数据权限的展示

二、数据权限作用及操作

三、数据权限业务代码分析

3.1Controller层

3.2Service层

3.3Mapper层

四、@DataScope 和 ${params.dataScope}

总结


前言

AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,它旨在通过将横切关注点(cross-cutting concerns)从商业逻辑中分离出来,以提高代码的模块化。横切关注点是指那些在应用程序中重复出现但又不属于核心业务逻辑的功能,例如日志记录、事务管理、安全性检查等。


一、数据权限的展示

在RuoYi中通过角色进行权限分配,包括菜单权限,数据权限等。

通过角色管理可以给角色添加不同的数据权限        


二、数据权限作用及操作

使用数据权限,我们可以让不同的角色可以访问的数据得到控制,实现用户只能看到自己部门数据的功能。

 查看普通角色ruoyi的数据权限可以知道角色只有访问测试部门的权限。

admin看到的数据

ry看到的数据

不同级别的用户所看到的数据范围也不相同(与我们给予的权限相关)


三、数据权限业务代码分析

3.1Controller层

3.2Service层

3.3Mapper层


四、@DataScope 和 ${params.dataScope}

@DataScope

AOP类 DataScopeAspect 处理注解 @DataScope

系统根据当前登录用户来判断是否为超级管理员 ,如果不是,则调用 dataScopeFilter 进行数据过滤,确保他们的数据访问范围。


总结

在RuoYi中使用Spring Aop 动态拦截方法处理数据权限,通过自定义注解 @DataScope 标记了需要权限控制的方法,使用切面配置动态修改SQL查询条件。减少了数据权限操作的耦合性,简化了业务流程,动态处理查询,动态控制数据的访问范围,更加的灵活且高效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值