若依的数据权限实现思路和过程初探(一)-代码实现

今天研究了下 若依的数据权限,还是很有收获,尤其从权限管理的实现思路上。
其基本实现思路是通过注解的方式,把需要权限通知的部分在注解中提前拼接好,当使用的时候根据注解中传入的 参数决定控制的权限范围。
过程大致如下
一、自定义注解
若依的数据权限实现思路和过程初探(一)-代码实现_第1张图片

二、通通过切面方式来处理需要进行权限管理的方法
若依的数据权限实现思路和过程初探(一)-代码实现_第2张图片

三、需要进行权限控制的方法
若依的数据权限实现思路和过程初探(一)-代码实现_第3张图片

四、把aspect拦截加工好的sql在mybatis中进行处理 ,已达到数据权限控制的目的
若依的数据权限实现思路和过程初探(一)-代码实现_第4张图片

ps: 第四部的params.dataScope 这个怎么来的?
所有对象都集成了一个基类:BaseEntity;该类中有个map类型属性params,具体值是在aspect中进行加工而成。这样mybatis中就能读取到该参数了。
若依的数据权限实现思路和过程初探(一)-代码实现_第5张图片

你可能感兴趣的:(springCloud)