自定义一个MyBaits脱敏插件
用于对查询结果中的敏感数据进行脱敏处理。这个插件将拦截ResultSetHandler
对象的处理结果,对某些敏感字段进行脱敏。
插件实现步骤
- 创建脱敏插件类。
- 注册插件。
1. 创建脱敏插件类
首先,我们创建一个自定义插件类 DataMaskingInterceptor
,它会拦截查询结果并对特定字段进行脱敏处理。
import org.apache.ibatis.executor.resultset.ResultSetHandler;
import org.apache.ibatis.plugin.*;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;
@Intercepts({
@Signature(type = ResultSetHandler.class, method = "handleResultSets", args = {
Statement.class})
})
public class DataMaskingInterceptor implements Interceptor {
@Override
public Object intercept(Invocation invocation) throws Throwable {
// 执行查询操作
Object result = invocation.proceed();
if (result instanceof List) {
List<?> resultList = (List<?>) result;
for (Object obj : resultList) {
if (obj instanceof Map) {