如果项目需要对一些特殊、敏感的数据进行脱敏处理。根据实际的需求可以考虑在读写的过程中分别做脱敏操作。
一、写过程参数脱敏
主要是使用mybatis框架提供的Interceptor实现。需要考虑不同类型的参数解析处理方式不同。
@Slf4j
@AllArgsConstructor
@Intercepts({@Signature(type = ParameterHandler.class, method = "setParameters", args = PreparedStatement.class)})
public class ParameterDesensitizationInterceptor extends ParameterInterceptor implements Interceptor {private final DesensitizationProperties desensitizationProperties;@Overridepublic Object intercept(Invocation invocation) throws Throwable {return handleInvocation(invocation);}@Overridepublic Map<String, List<String>> getObjectFieldsMap() {return desensitizationProperties.getObjectFieldsMap();}@Overridepublic Object handleObjectField(Object objectFieldValue) {return StringUtils.mask(String.valueOf(objectFieldValue), desensitizationProperties.getStartPosition(),desensitizationProperties.getEndPosition()