如果項目需要對一些特殊、敏感的數據進行脫敏處理。根據實際的需求可以考慮在讀寫的過程中分別做脫敏操作。
一、寫過程參數脫敏
主要是使用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()