Class Provider<T>

java.lang.Object
org.miaixz.bus.sensitive.Provider<T>
Type Parameters:
T - 参数类型

public class Provider<T> extends Object
脱敏接口
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • Provider

      public Provider()
  • Method Details

    • clone

      public static <T> T clone(T object)
      深度复制 1. 为了避免深拷贝要求用户实现 clone 和 序列化的相关接口 2. 为了避免使用 dozer 这种比较重的工具 3. 自己实现暂时工作量比较大

      暂时使用 fastJson 作为实现深度拷贝的方式

      Type Parameters:
      T - 泛型
      Parameters:
      object - 对象
      Returns:
      深拷贝后的对象
    • alreadyBeSentisived

      public static boolean alreadyBeSentisived(Object object)
      是否已经是脱敏过的内容了
      Parameters:
      object - 原始数据
      Returns:
      是否已经脱敏了
    • parseToObjectMap

      public static Map<String,Object> parseToObjectMap(String jsonStr)
      将json字符串转化为StringObject类型的map
      Parameters:
      jsonStr - json字符串
      Returns:
      map
    • parseMaptoJSONString

      public static String parseMaptoJSONString(Map<String,Object> params)
      将map转化为json字符串
      Parameters:
      params - 参数集合
      Returns:
      json
    • on

      public T on(T object, Annotation annotation, boolean clone)
      对象进行脱敏操作 原始对象不变,返回脱敏后的新对象 1. 为什么这么设计? 不能因为脱敏,就导致代码中的对象被改变 否则代码逻辑会出现问题
      Parameters:
      object - 原始对象
      annotation - 注解信息
      clone - 是否克隆
      Returns:
      脱敏后的新对象
    • json

      public String json(T object, Annotation annotation)
      返回脱敏后的 json 1. 避免 desCopy 造成的对象新建的性能浪费
      Parameters:
      object - 对象
      annotation - 注解
      Returns:
      json