## 纯注解配置 * 如果是纯注解配置,那么是不通过数据库的,相当于是离线配置。 * 我们只需要关注column、type、value这三个字段。 * `column`:需要过滤的数据库字段 * `type`:数据权限过滤的类型 * `value`:当数据权限类型为自定义的时候,配置的sql条件语句 ### 所在机构可见 1. 配置DataAuth注解,因为默认字段就是create_dept,所以无需配置column ![](../../images/screenshot_1561376354458.png) 2. postman调用接口获取token ![](../../images/screenshot_1561376373156.png) 3. 将token传入header并调用对应接口 ![](../../images/screenshot_1561376485460.png) 4. 查看具体返回数据 ![](../../images/screenshot_1561376641562.png) 5. 查看控制台sql打印 ![](../../images/screenshot_1561376567425.png) 6. 核对数据库数据,发现一致 ![](../../images/screenshot_1561376673231.png) ### 所在机构及子集可见 1. 配置DataAuth注解,因为默认字段就是create_dept,所以无需配置column ![](../../images/screenshot_1561376760292.png) 2. 重启工程再次调用接口,发现返回了5条 ![](../../images/screenshot_1561376857150.png) 3. 查看控制台sql打印 ![](../../images/screenshot_1561376895896.png) 4. 查看部门表对应数据,可以看到,也是正确的 ![](../../images/screenshot_1561376952747.png) ### 个人可见 1. 配置DataAuth注解,由于创建人字段为create_user,不是默认,所以需要指定 ![](../../images/screenshot_1561377096340.png) 2. 重启工程再次调用接口,发现返回了3条 ![](../../images/screenshot_1561377199913.png) 3. 查看控制台sql打印 ![](../../images/screenshot_1561377226603.png) 4. 可以看到,筛选字段名变为了create_user,与我们预想一致 ### 自定义配置 1. 配置DataAuth注解,配置自定义sql ![](../../images/screenshot_1561377977279.png) 2. 在这个配置的sql里我使用里占位符`${userId}`,没错,这么写在底层就可以直接获取到当前登录用户的deptId字段,除此之外我们还可以用更多的参数,比如`${deptId}`、`${roleId}`、`${tenantId}`、`${account}`、`${userName}`等等 3. 这些参数可以参考BladeUser类,他的所有字段我们都是可以根据占位符来获得的。 ![](../../images/screenshot_1561377844255.png) 4. 重启工程再次调用接口,发现返回了3条 ![](../../images/screenshot_1561379055806.png) 5. 查看控制台sql打印 ![](../../images/screenshot_1561379080734.png) 6. 我们可以看到,自定义sql以及占位符都生效,达到了我们的预期~ ## 注 * 纯注解配置,如果对于灵活性要求不是特别大的话,其实可以满足绝大多数场景了 * 下一节,我们来看下基于web全自动配置