# data-processing **Repository Path**: chenxbook/data-processing ## Basic Information - **Project Name**: data-processing - **Description**: 数据处理系统 - **Primary Language**: Java - **License**: AFL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-03-08 - **Last Updated**: 2024-03-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README data-processing 数据处理系统 =============== 当前最新版本: 0.0.1-SNAPSHOT(发布日期:20191213) ## 项目介绍 - 针对不同的数据处理需求,进行相应功能设计。 - 数据差异化比较:校验两个数据对象是否一致 - 高效数据聚合查询:几项数据之间无强依赖性, 可以进行并行获取 - 多线程处理:自定义线程处理、子线程共享父线程变量等 - 加密解密:AES加密解密 - JSON序列化:使serializeUsing制定属性的序列化类 - 事件监听:事件发布者在发布事件的时候->通知事件的监听者 - 字符串近似度(1-余弦相似度;2-编辑距离算法;3-单词字母对算法;4-汉明距离算法) ## 后端技术架构 - 基础框架:Spring Boot 2.0.5.RELEASE - 日志打印:logback - 其他:gson,fastjson,Swagger-ui, lombok(简化代码)等。 ## 开发环境 - 语言:Java 8 - IDE(JAVA):IDEA安装lombok插件 - 依赖管理:Maven ## 接口文档 - [接口文档](http://localhost:10018/data-processing/doc.html) ## 技术文档 - [JAVA怎么对比两个JSON是否一致](https://jingyan.baidu.com/article/7082dc1c2819aee40a89bdbb.html) - [Spring Boot 高效数据聚合之道](https://www.cnblogs.com/lvyahui/p/11007600.html) - [@JSONField 注解详解和应用](https://blog.csdn.net/fxbin123/article/details/78465342) - [Jackson快速替换Fastjson之道](https://blog.csdn.net/hujkay/article/details/97040048) - [Java分布式中文分词组件--word 分词](https://my.oschina.net/apdplat/blog/228619#OSC_h4_8) ## 接口示例 #### 一、 数据差异化比较 - 请求地址:http://localhost:10018/data-processing/api/dataDiff/checkDataConsistency/v1 - 请求方式:POST - 请求报文: ``` { "compareObjA" : { "applicant" : { "custName" : "张三", "age" : 18, "sex" : "F", "hobby" : ["打球","游泳"] }, "contactInfos" : [{ "conName" : "李四" , "conPhone" : "18745121231" }, { "conName" : "王五" , "conPhone" : "18745121232" } ] }, "compareObjB" : { "applicant" : { "custName" : "张三", "age" : 18, "sex" : "F", "hobby" : ["游泳", "打球"] }, "contactInfos" : [{ "conName" : "王五" , "conPhone" : "18745121232" }, { "conName" : "李四" , "conPhone" : "18745121231" } ] } } ``` #### 二、 高效数据聚合查询-获取用户信息 - 请求地址:http://localhost:10018/data-processing/api/dataAggregate/getUserInfo/v1 - 请求方式:GET #### 三、 json序列化测试 - 实体转化为字符串:http://localhost:10018/data-processing/api/jsonserialize/toJavaObject/v1/ - 字符串转化为实体列表:http://localhost:10018/data-processing/api/jsonserialize/toJavaList/v1/ - 字符串转化为实体:http://localhost:10018//data-processing/api/jsonserialize/toJavaObject/v1/ #### 四、 字符串近似度 - 请求地址:http://localhost:10018/data-processing/api/similar/v1/checkFuzzyMatchSimilarity - 请求方式:POST - 请求报文: ``` { "refValue": "中华人民共和国", "similarityAlgType": "1", "testValue": "中国" } ``` ## 参考文章 ### AES加密解密 - [32位AES加密解密(AES/ECB/PKCS7Padding)](https://blog.csdn.net/weixin_36833780/article/details/80642041) - [Given final block not properly padded](https://www.cnblogs.com/Darlin356230410/p/8602674.html) ### 多线程处理 - [ThreadPoolExecutor使用详解](https://www.cnblogs.com/zedosu/p/6665306.html) - [ExecutorService与ThreadPoolExecutor的区分及其使用方式](https://blog.csdn.net/qq_36565051/article/details/78134988) - [CountDownLatch之countDown()放在主线程的方法里](https://blog.csdn.net/luzhensmart/article/details/84896655) - [异步编程利器:CompletableFuture详解](https://juejin.cn/post/6970558076642394142) ### 事件监听 - [ApplicationContext发布事件和处理事件](https://blog.csdn.net/dongwujing/article/details/89339680) ### 字符串近似度 - [单词字母对算法-不同长度的字符串/中文串相似度对比算法](https://blog.csdn.net/qq_36857572/article/details/81171915) - [利用分词,计算相似度](https://blog.csdn.net/YuChenIT/article/details/124267816) - [字符串相似度算法——Levenshtein Distance算法](https://www.cnblogs.com/xiaoyulong/p/8846745.html)