## 纯注解配置
* 如果是纯注解配置,那么是不通过数据库的,相当于是离线配置。
* 我们只需要关注column、type、value这三个字段。
* `column`:需要过滤的数据库字段
* `type`:数据权限过滤的类型
* `value`:当数据权限类型为自定义的时候,配置的sql条件语句
<br>
### 所在机构可见
1. 配置DataAuth注解,因为默认字段就是create_dept,所以无需配置column
![](https://box.kancloud.cn/a09f43d05c57f8d8bb8fc8a54a736ad1_1152x914.png)
2. postman调用接口获取token
![](https://img.kancloud.cn/64/91/64919ab7328055f4f36a9903456f35b2_1784x1400.png)
3. 将token传入header并调用对应接口
![](https://box.kancloud.cn/4f3978ce6b5eed2e1b8f87532d0e1c91_2146x1558.png)
4. 查看具体返回数据
![](https://box.kancloud.cn/6785b2d595b8a9cea7024402b28585d0_1324x1664.png)
5. 查看控制台sql打印
![](https://box.kancloud.cn/05b4ddcc10a046be1d0bb18e92b32364_1898x208.png)
6. 核对数据库数据,发现一致
![](https://box.kancloud.cn/19f9395eaef047af5fa780b85ee75d7e_2838x382.png)
<br>
### 所在机构及子集可见
1. 配置DataAuth注解,因为默认字段就是create_dept,所以无需配置column
![](https://box.kancloud.cn/830dddf4b794c6dc000df0b459129720_1140x930.png)
2. 重启工程再次调用接口,发现返回了5条
![](https://box.kancloud.cn/32993897938f057e3974ddafc20e69d2_1102x1654.png)
3. 查看控制台sql打印
![](https://box.kancloud.cn/063cc70e7f518bd53b6f337b8c8393d8_2082x138.png)
4. 查看部门表对应数据,可以看到,也是正确的
![](https://box.kancloud.cn/255ebe926f34f945b39ad9146a5922de_782x186.png)
<br>
### 个人可见
1. 配置DataAuth注解,由于创建人字段为create_user,不是默认,所以需要指定
![](https://box.kancloud.cn/0439ec7b78111bca75102b0ee7c461d8_1172x938.png)
2. 重启工程再次调用接口,发现返回了3条
![](https://box.kancloud.cn/313ca38c7594459acff3b057e1d4e39b_1302x1694.png)
3. 查看控制台sql打印
![](https://box.kancloud.cn/0559279427953dc00456f5b9db53cade_1458x176.png)
4. 可以看到,筛选字段名变为了create_user,与我们预想一致
<br>
### 自定义配置
1. 配置DataAuth注解,配置自定义sql
![](https://box.kancloud.cn/82aeabe25450ff5ef1133f2b46ad16ff_2150x910.png)
2. 在这个配置的sql里我使用里占位符`${userId}`,没错,这么写在底层就可以直接获取到当前登录用户的deptId字段,除此之外我们还可以用更多的参数,比如`${deptId}`、`${roleId}`、`${tenantId}`、`${account}`、`${userName}`等等
3. 这些参数可以参考BladeUser类,他的所有字段我们都是可以根据占位符来获得的。
![](https://box.kancloud.cn/201d395872f538503a687fc2175f7e09_874x1744.png)
4. 重启工程再次调用接口,发现返回了3条
![](https://box.kancloud.cn/52a2dd94f38c6bc971f9cf1c74b23ae7_1144x1618.png)
5. 查看控制台sql打印
![](https://box.kancloud.cn/55c3c579cc40a6859468b36fa23afae8_1748x212.png)
6. 我们可以看到,自定义sql以及占位符都生效,达到了我们的预期~
## 注
* 纯注解配置,如果对于灵活性要求不是特别大的话,其实可以满足绝大多数场景了
* 下一节,我们来看下基于web全自动配置
- 第零章 序
- 序言
- 系统架构
- 视频公开课
- 开源版介绍
- 商业版介绍
- 功能对比
- 答疑流程
- 第一章 快速开始
- 升级必看
- 环境要求
- 环境准备
- 基础环境安装
- Docker安装基础服务
- Nacos安装
- Sentinel安装
- 插件安装
- 建数据库
- 工程导入
- 导入Cloud版本
- 导入Nacos配置
- 导入Boot版本
- 工程运行
- 运行Cloud版本
- 运行Boot版本
- 工程测试
- 测试Cloud版本
- 测试Boot版本
- 第二章 技术基础
- Java
- Lambda
- Lambda 受检异常处理
- Stream 简介
- Stream API 一览
- Stream API (上)
- Stream API (下)
- Optional 干掉空指针
- 函数式接口
- 新的日期 API
- Lombok
- SpringMVC
- Swagger
- Mybatis
- Mybatis-Plus
- 开发规范
- 第三章 开发初探
- 新建微服务工程
- 第一个API
- API鉴权
- API响应结果
- Redis缓存
- 第一个CRUD
- 建表
- 建Entity
- 建Service和Mapper
- 新增 API
- 修改 API
- 删除 API
- 查询 API
- 单条数据
- 多条数据
- 分页
- 微服务远程调用
- 声明式服务调用 Feign
- 熔断机制 Hystrix
- 第四章 开发进阶
- 聚合文档
- 鉴权配置
- 跨域处理
- Xss防注入
- 自定义启动器
- Secure安全框架
- Token认证简介
- Token认证配置
- PreAuth注解配置
- Token认证实战
- Token认证加密
- 日志系统
- 原理解析
- 功能调用
- Seata分布式事务
- 简介
- 编译包启动
- 配置nacos对接
- docker启动
- 对接微服务
- 代码生成配置
- 前言
- 数据库建表
- 代码生成
- 前端配置
- 优化效果
- 第五章 功能特性
- SaaS多租户
- 概念
- 数据隔离配置
- 线程环境自定义租户ID
- 多终端令牌认证
- 概念
- 系统升级
- 使用
- 第三方系统登录
- 概念说明
- 对接说明
- 对接准备
- 配置说明
- 操作流程
- 后记
- UReport2报表
- 报表简介
- 对接配置
- 报表后记
- 动态数据权限
- 数据权限简介
- 数据权限开发
- 纯注解配置
- Web全自动配置
- 注解半自动配置
- 数据权限注意点
- 动态接口权限
- 乐观锁配置
- 统一服务登陆配置
- Skywalking追踪监控
- Minio分布式对象存储
- Boot版本对接至Cloud
- 第六章 生产部署
- windows部署
- linux部署
- jar部署
- docker部署
- java环境安装
- mysql安装
- docker安装
- docker-compose安装
- harbor安装
- 部署步骤
- 宝塔部署
- 准备工作
- 安装工作
- 部署准备
- 部署后端
- 部署前端
- 部署域名
- 结束工作
- k8s平台部署
- 第七章 版本控制
- Git远程分支合并
- Git地址更换
- 第八章 学习资料
- 第九章 FAQ
- 第十章 联系我们