平台集成了很多第三方功能,通过统一的封装模式进行封装,屏蔽了其技术细节。本篇介绍了封装模式:
一、统一封装为jar包,存入maven。例如百度人脸识别为:
<groupId>org.qlm</groupId>
<artifactId>baidu-face-utils</artifactId>
<version>1.0-SNAPSHOT</version>
二、引入参数
@Configuration @Component public class BaiduFaceConfig implements ApplicationRunner { @Value("${qlm.baidu.clientId}") public String clientId; @Value("${qlm.baidu.clientSecret}") public String clientSecret; public void run(ApplicationArguments args) throws Exception { BaiduFaceUtil.init(clientId, clientSecret); } }
这样BaiduFaceUtil类就有了定义的参数
三、定义各种dto用于封装
例如:
@Data @Schema(name = "faceDto",description = "照片信息") public class faceDto { //图片信息 private String image; // BASE64 FACE_TOKEN private String image_type; //用户组id private String group_id; private String user_id; private String user_info; /* 图片质量控制 NONE: 不进行控制 LOW:较低的质量要求 NORMAL: 一般的质量要求 HIGH: 较高的质量要求 默认 NONE 若图片质量不满足要求,则返回结果中会提示质量检测失败 */ private String quality_control; /* 活体检测控制 NONE: 不进行控制 LOW:较低的活体要求(高通过率 低攻击拒绝率) NORMAL: 一般的活体要求(平衡的攻击拒绝率, 通过率) HIGH: 较高的活体要求(高攻击拒绝率 低通过率) 默认NONE 若活体检测结果不满足要求,则返回结果中会提示活体检测失败 * */ private String liveness_control; /* 操作方式 APPEND: 当user_id在库中已经存在时,对此user_id重复注册时,新注册的图片默认会追加到该user_id下 REPLACE : 当对此user_id重复注册时,则会用新图替换库中该user_id下所有图片 默认使用APPEND */ private String action_type; /* 操作方式 APPEND: 当user_id在库中已经存在时,对此user_id重复注册时,新注册的图片默认会追加到该user_id下 REPLACE : 当对此user_id重复注册时,则会用新图替换库中该user_id下所有图片 默认使用APPEND */ private String face_sort_type; }
四、定义静态函数
//入库 public static faceOperResultDto faceAdd(faceDto face)
//搜索
public static faceSearchResultDto faceSearch(faceDto face)
五、使用
增加maven引用,直接调用静态函数即可