news 2026/1/8 8:34:50

仿照若依框架进行数据权限控制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
仿照若依框架进行数据权限控制

用的方案其实就是“若依”那套思路,不过自己做了点裁剪,核心就四步——注解标识、AOP 拦截、SQL 拼接、MyBatis 消费。下面按执行顺序捋一遍:

  1. 打标记
    在需要控制权限的 Mapper 方法上贴一个自定义注解@DataScope,里面两个值:

    @DataScope(deptAlias="d",userAlias="u")List<Xxx>selectList(Xxxparam);

    这样一眼就能看出“这个方法要走数据权限”。

  2. AOP 切面
    专门写了一个DataScopeAspect,进入方法之前先跑:

    • 清理 ThreadLocal,防止线程复用串数据;
    • 从 Spring Security 上下文里拿当前登录用户,包括他的角色、部门 ID、用户 ID;
    • 如果是超级管理员,直接放行;否则根据角色提前配置好的“数据范围”枚举拼 SQL 片段,比如“本部门及以下”就用find_in_set(ancestors),“仅本人”就create_by = #{userId}
  3. 把条件塞进实体
    所有实体都继承BaseEntity,里面有个临时字段dataScope。切面通过反射把第 2 步拼好的 SQL 片段塞进去,再往下传。

  4. MyBatis 消费
    XML 里统一加一句:

    <iftest="dataScope != null and dataScope !=''">${dataScope}</if>

    真正发到数据库的 SQL 就带上了权限过滤条件,返回的数据自然就是当前用户能看的那部分。


亮点补充

  • 对业务代码零侵入,只在 Mapper 层加注解,Service 层无感知。
  • SQL 片段统一维护,换需求只改枚举,不动业务。
  • 线程级 ThreadLocal + 用完即清理,没有内存泄漏风险。
  • 后面做 SaaS 多租户时,把“租户 ID”字段也加进来,同一套切面直接复用。

一句话总结
“注解一贴,切面自动把‘部门/个人’范围拼成 SQL,MyBatis 尾巴一接,数据权限就生效,全程业务代码无感,改需求只改配置。”

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/4 18:24:41

Plotly Dash多页面仪表盘的构建框架

Plotly Dash — 一个适用于多页面仪表盘的结构化框架 多页面仪表盘的精确输出&#xff08;暗色模式&#xff09;显示了项目结构的特性 – 图片由作者提供 – 数据来自 GAPMINDER.ORG&#xff0c;CC-BY 许可证 Plotly Dash 是一个广受认可和使用的框架&#xff0c;可用于创建交…

作者头像 李华
网站建设 2026/1/4 1:07:09

数据可视化中色彩运用的核心指南

这是数据可视化系列的第三篇文章。参见第一部分&#xff1a;“数据可视化解读&#xff1a;它是什么以及为何重要”和第二部分&#xff1a;“数据可视化解读&#xff1a;视觉变量简介”。 在下图中&#xff0c;您看到了多少种颜色&#xff1f; 大多数人看到了四种&#xff1a;白…

作者头像 李华
网站建设 2026/1/2 2:30:47

通过“回馈行动“支持美国退伍军人掌握数据技术

通过"回馈行动"支持美国退伍军人英雄 "回馈行动"于2021年9月启动&#xff0c;旨在向所有美国退伍军人及现役军人提供某中心的技术培训机会&#xff0c;以帮助他们增长和拓展技术技能组合。此举是某中心对所有军事人员表示感谢的一种方式&#xff0c;为他们…

作者头像 李华
网站建设 2026/1/3 22:48:57

智能网页工作便签备忘录HTML源码

简介&#xff1a;智能网页工作便签备忘录HTML源码功能说明 便笺显示&#xff1a;默认设置便签按创建日期倒序显示&#xff08;最新的便签在最前面&#xff09; 主题选择&#xff1a;支持消息通知&#xff08;toast通知&#xff09; 红色主题 – 激情、活力&#xff0c;适合需要…

作者头像 李华
网站建设 2026/1/4 18:21:37

Deep Learning for Person Re-identification:A Survey and Outlook阅读笔记

Deep Learning for Person Re-identification:A Survey and Outlook 深度学习用于行人重识别&#xff1a;综述与展望 参考阅读&#xff1a;TPAMI2021深度学习行人重识别综述与展望 笔记 Re-ID技术的五大步骤 1&#xff09;数据采集&#xff0c;一般来源于监控摄像机的原始…

作者头像 李华
网站建设 2026/1/4 15:57:47

国内口碑好的牦牛绒混纺纱线供应商推荐,含 90%羊毛+10%

国内口碑好的 90%羊毛10%牦牛绒混纺纱线供应商探秘在纺织行业中&#xff0c;牦牛绒混纺纱线凭借其独特的性能和价值&#xff0c;正逐渐成为市场的新宠。尤其是 90%羊毛 10%牦牛绒的混纺纱线&#xff0c;既融合了羊毛的坚韧与牦牛绒的柔软保暖&#xff0c;又具备良好的性价比&a…

作者头像 李华