一、AOP简介
1.什么是AOP
AOP(Aspect Oriented Programming):面向切面编程,它和 OOP(面向对象编程)类似。
AOP 是一种思想,而 Spring AOP 是实现(框架),这种关系和 IOC(思想)与 DI(实现)类似。
比如用户登录权限的效验,我们只需要在某一处配置一下,那么所有需要判断用户登录的页面就全部可以实现用户登录验证了,不用在每个方法中都写用户登录验证了。
2.为什么要用AOP
1.高频:对于这种功能统一,且使用地方较多的功能(比如 用户登录验证)
2.使⽤ AOP 可以扩充多个对象的某个能⼒
3.统一日志处理
4.统一方法执行时间统计
5.统一的返回格式设置
6.统一的异常处理
7.事务的开启和提交等
二、RuoYi中的AOP类DataScopeAspect不同权限sql语句
@Before:在带有@DataScope注解的函数将要执行之前,先执行doBefore的方法clearDataScope和handleDataScope,对于不是超级管理员的用户,则需要进行数据范围过滤。
全部权限:DATA_SCOPE_ALL,表示用户具有全部数据的访问权限,不需要添加任何过滤条件。
自定义权限:DATA_SCOPE_CUSTOM,根据用户的角色,仅允许用户访问与其相关部门的数据。
本部门权限:DATA_SCOPE_DEPT,用户只能访问其所在部门数据。
本部门及以下权限:DATA_SCOPE_DEPT_AND_CHILD,允许用户访问自己所在部门及其所有子部门的数据。
仅本人权限:DATA_SCOPE_SELF,用户只能访问自己数据
三、参考
https://blog.csdn.net/m0_58761900/article/details/128999827