【三十三】springboot+序列化實現返回值脫敏和返回值字符串時間格式化問題

互相交流入口地址

整體目錄:

【一】springboot整合swagger

【二】springboot整合自定義swagger

【三】springboot整合token

【四】springboot整合mybatis-plus

【五】springboot整合mybatis-plus

【六】springboot整合redis

【七】springboot整合AOP實現日志操作

【八】springboot整合定時任務

【九】springboot整合redis實現啟動服務時熱點數據保存在全局和緩存

【十】springboot整合quartz實現定時任務優化

【十一】springboot整合異步調用并獲取返回值

【十二】springboot整合WebService

【十三】springboot整合WebService關于傳參數

【十四】springboot整合WebSocket

【十五】springboot整合WebSocket實現聊天室

【十六】RabbitMQ基礎篇(下載安裝并基礎使用,內含各種坑問題)

【十七】RabbitMQ基礎篇(延遲隊列和死信隊列實戰)

【十八】springboot實現自定義全局異常處理

【十九】初學Kafka并實戰整合SpringCloudStream進行使用

【二十】springboot整合ElasticSearch實戰(萬字篇)

【二十一】springboot整合過濾器實戰

【二十二】springboot整合攔截器實戰并對比過濾器

【二十三】springboot整合activiti7(1)實戰演示篇

【二十四】springboot整合spring事務詳解以及實戰

【二十五】springboot使用EasyExcel和線程池實現多線程導入Excel數據

【二十六】springboot整合jedis和redisson布隆過濾器處理緩存穿透

【二十七】springboot實現多線程事務處理

【二十八】springboot之threadLocal參數解析器實現session一樣保存當前登錄功能?

【二十九】springboot整合logback實現日志管理

【三十】springboot項目上高并發解決示例

【三十一】springboot+easyExcel實現多文件導出壓縮包

目錄

一、返回值脫敏

二、返回值日期格式化?


? ? ? ? 很久沒有寫小作文了,趕著學子們參加考試的時間,繼續記錄點小東西,1、返回對象的字符串數據脫敏?;2、返回對象針對字符串格式的時間的格式化。

一、返回值脫敏

? ? ? ? 1、準備返回值對象

?

? ? ? ?2、準備接口

?

? ? ? ? 3、準備脫敏注解

?

? ? ? ? 4、準備序列化處理類
public class SensitiveInfoSerialize extends JsonSerializer<String> implements ContextualSerializer {private DesensitizationType type;public SensitiveInfoSerialize() {}public SensitiveInfoSerialize(final DesensitizationType type) {this.type = type;}@Overridepublic void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException {switch (this.type) {case ID_CARD:value = DesensitizedUtil.idCardNum(value, 4, 2);break;case MOBILE_PHONE: {value = DesensitizedUtil.mobilePhone(value);break;}default:break;}gen.writeString(value);}/*** 序列化時獲取字段注解屬性* @param serializerProvider* @param property* @return* @throws JsonMappingException*/@Overridepublic JsonSerializer<?> createContextual(SerializerProvider serializerProvider, BeanProperty property) throws JsonMappingException {if (property != null) {// 此demo只處理String類型字段if (Objects.equals(property.getType().getRawClass(), String.class)) {SensitiveInfo sensitiveInfo = property.getAnnotation(SensitiveInfo.class);if (sensitiveInfo == null) {sensitiveInfo = property.getContextAnnotation(SensitiveInfo.class);}if (sensitiveInfo != null) {return new SensitiveInfoSerialize(sensitiveInfo.value());}}return serializerProvider.findValueSerializer(property.getType(), property);}return serializerProvider.findNullValueSerializer(null);}}

? ? ? ? 實現ContextualSerializer接口后重寫的JsonSerializer方法就是為了找到需要處理的屬性,而集成JsonSerializer后重寫的serialize方法就是為了處理需要處理的屬性。DesensitizedUtil是糊涂的工具。就這樣就可以了。

? ? ? ? 5、演示原本效果

? ? ? ? 6、增加注解后效果

二、返回值日期格式化?

? ? ? ? 在開發時返回值里的時間一定不只是Date、LocalDateTime、LocalDate,有時候也可能是字符串格式。此時常用的@JsonFormat注解就失去用武之地了,使用上面的方式也可以處理這種情況,下面進行展示。

? ? ? ? 1、返回值增加時間字段

? ? ? ? 2、原有效果

? ? ? ? 3、使用常用的@JsonFormat注解進行處理

? ? ? ? 處理字符串的時間以外,其他的時間都能正常處理,下面通過序列化的方式進行處理該字段。

?????????4、增加字符串日期格式處理注解

? ? ? ? 5、準備序列化處理類
public class StringToDateSerialize extends JsonSerializer<String> implements ContextualSerializer {private String sourceFormat;private String targetFormat;public StringToDateSerialize() {}public StringToDateSerialize(final String sourceFormat, final String targetFormat) {this.sourceFormat = sourceFormat;this.targetFormat = targetFormat;}@Overridepublic void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException {gen.writeString(DateUtil.format(DateUtil.parse(value,sourceFormat), targetFormat));}@Overridepublic JsonSerializer<?> createContextual(SerializerProvider serializerProvider, BeanProperty property) throws JsonMappingException {if (property != null) {if (Objects.equals(property.getType().getRawClass(), String.class)) {StringToDate stringToDate = property.getAnnotation(StringToDate.class);if (stringToDate == null) {stringToDate = property.getContextAnnotation(StringToDate.class);}if (stringToDate != null) {return new StringToDateSerialize(stringToDate.source(),stringToDate.target());}}return serializerProvider.findValueSerializer(property.getType(), property);}return serializerProvider.findNullValueSerializer(null);}}
? ? ? ? 6、測試效果

? ? ? ? 可看到字符串格式的時間,包括含有T的時間格式都能夠成功處理。

? ? ? ? 歡迎大佬們評論區討論。?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/24415.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/24415.shtml
英文地址,請注明出處:http://en.pswp.cn/web/24415.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Java每日一題】2.和數最大操作II-動態規劃

題目難度&#xff1a;中等 主要提升&#xff1a;for循環思想、動態規劃思想、數組操作 一、題目描述&#xff1a; 給你一個整數數組 nums &#xff0c;如果 nums 至少包含 2 個元素&#xff0c;你可以執行以下操作中的任意一個&#xff1a; &#xff08;1&#xff09;選擇 n…

Java學習-JDBC(一)

JDBC 概念 JDBC(Java Database Connectivity)Java數據庫連接JDBC提供了一組獨立于任何數據庫管理系統的APIJava提供接口規范&#xff0c;由各個數據庫廠商提供接口的實現&#xff0c;廠商提供的實現類封裝成jar文件&#xff0c;也就是我們俗稱的數據庫驅動jar包JDBC充分體現了…

什么是虛擬局域網?快解析有哪些的虛擬化應用功能?

什么是虛擬局域網&#xff1f;從字面上理解就是不是真實存在的局域網。虛擬局域網是將網絡用戶和設備集中在一起&#xff0c;從而可以對不同地域和商業的需要有一定的支持性。虛擬局域網有它的優點&#xff0c;在使用過程中可以為企業提供更安全、更穩定、更靈活的服務保障體系…

記錄jenkins pipeline ,git+maven+sonarqube+打包鏡像上傳到阿里云鏡像倉庫

1、階段視圖&#xff1a; 2、準備工作 所需工具與插件 jdk&#xff1a;可以存在多版本 maven&#xff1a;可以存在多版本 sonar-scanner 憑證令牌 gitlab&#xff1a;credentialsId sonarqube:配置在sonarqube208服務中 3、jenkinsfile pipeline {agent anystages {stage(從…

ugpowermill編程入門:從基礎到進階的全面解析

ugpowermill編程入門&#xff1a;從基礎到進階的全面解析 在制造行業中&#xff0c;UG PowerMill編程是一款廣泛應用的數控編程軟件&#xff0c;它以其高效、精確的加工能力深受工程師們的喜愛。對于初學者來說&#xff0c;如何快速入門并熟練掌握UG PowerMill編程技能是一項重…

Mac怎么讀取內存卡 Mac如何格式化內存卡

在今天的數字化時代&#xff0c;內存卡已經成為了我們生活中不可或缺的一部分。對于Mac電腦用戶而言&#xff0c;正確地讀取和管理內存卡中的數據至關重要。下面我們來看看Mac怎么讀取內存卡&#xff0c;Mac如何格式化內存卡的相關內容。 一、Mac怎么讀取內存卡 蘋果電腦在讀…

Base64 編碼表 參考

Base64的編碼是由下面的64個字符加上一個墊字符"" 一共65個字符集來完成的&#xff0c;他用 4 個 base64 字符去表示 3 個 ASCII 碼字符。 Base64字符串判斷可參考 golang判斷字符串是否base64編碼的字符串算法&#xff0c; 可準確判斷是或否 附帶單元測試用例和模糊…

Python中__面向對象__學習 (上)

目錄 一、類和對象 1.類的定義 2.根據對象創建類 二、構造和析構 1.構造方法 &#xff08;1&#xff09;不帶參數的構造方法 &#xff08;2&#xff09;帶參數的構造方法 2.析構方法 三、重載 1.定制對象的字符串形式 &#xff08;1&#xff09;只重載__str__方法 …

QT Udp廣播實現設備發現

測試環境 本文選用pc1作為客戶端&#xff0c;pc2&#xff0c;以及一臺虛擬機作為服務端。 pc1,pc2(客戶端&#xff09;: 虛擬機&#xff08;服務端)&#xff1a; 客戶端 原理&#xff1a;客戶端通過發送廣播消息信息到ip:255.255.255.255(QHostAddress::Broadcast),局域網…

了解Java內存模型(Java Memory Model, JMM)

了解Java內存模型&#xff08;Java Memory Model, JMM&#xff09; Java內存模型&#xff08;Java Memory Model, JMM&#xff09;是Java語言規范中規定的一組規則&#xff0c;定義了多線程程序中變量&#xff08;包括實例字段、靜態字段和數組元素&#xff09;的訪問方式。JM…

git 大文件上傳失敗 Please remove the file from history and try again.

根據提示執行命令 --- 查找到當前文件 git rev-list --objects --all | grep b24e74b34e7d482e2bc687e017c8ab28cd1d24b6git filter-branch --tree-filter rm -f 文件名 --tag-name-filter cat -- --all git push origin --tags --force git push origin --all --force

Fort Firewall防火墻工具v3.12.13

軟件介紹 Fort Firewall是一款開源系統的免費防火墻&#xff0c;體積小巧、占用空間不大&#xff0c;可以為用戶的電腦起到保護作用&#xff0c;該軟件可以控制程序訪問網絡&#xff0c;控制用戶的電腦網速&#xff0c;用戶可以更輕松便捷的進行網絡安全防護&#xff0c;保護系…

c# Attribute特性示范

[MyCustomAttribute("Example")] 中括號寫在類前&#xff0c;表示此類具有此特性。 ”property” 譯為“屬性 Attribute用特性描述 using System;// 定義一個自定義特性 public class MyCustomAttribute : Attribute {public string Value { get; set; }public My…

什么是鏡像源

鏡像源在計算機領域中是一個重要的概念&#xff0c;下面我將用分點的方式清晰解釋鏡像源的定義、作用以及特點&#xff1a; 1. 定義 鏡像源&#xff08;Mirror&#xff09;&#xff1a;是一個服務器&#xff0c;它存儲了另一個服務器上的某些或全部內容的副本。這些內容可以包…

Sony前端連接功放:深度解析與實用指南

Sony前端連接功放&#xff1a;深度解析與實用指南 在音響設備連接中&#xff0c;Sony前端與功放的連接常常是一個令人困惑卻又至關重要的環節。本文將從四個方面、五個方面、六個方面和七個方面詳細解析Sony前端連接功放的步驟、技巧及注意事項&#xff0c;旨在幫助讀者輕松完…

計算機網絡 —— 網絡層(IP數據報)

計算機網絡 —— 網絡層&#xff08;IP數據報&#xff09; 網絡層要滿足的功能IP數據報IP數據報格式IP數據報首部格式數據部分 IP數據報分片 我們今天進入網絡層的學習。 網絡層要滿足的功能 網絡層作為OSI模型中的第三層&#xff0c;是計算機網絡體系結構的關鍵組成部分&…

實驗六、IPv4 地址的子網劃分,第 2 部分《計算機網絡》

你有沒有發現&#xff0c;困的時候真的清醒不了。 目錄 一、實驗目的 二、實驗內容 三、實驗小結 一、實驗目的 完成本練習之后&#xff0c;您應該能夠確定給定 IP 地址和子網掩碼的子網信息。 知道 IP 地址、網絡掩碼和子網掩碼后&#xff0c;您應該能夠確定有關該 IP 地…

SpringBoot實現參數校驗攔截(采用AOP方式)

一、AOP是什么&#xff1f; 目的&#xff1a;分離橫切關注點&#xff08;如日志記錄、事務管理&#xff09;與核心業務邏輯。 優勢&#xff1a;提高代碼的可讀性和可維護性。 關鍵概念 切面&#xff08;Aspect&#xff09;&#xff1a;包含橫切關注點代碼的模塊。通知&#xff…

【2024最新華為OD-C/D卷試題匯總】[支持在線評測] 運輸時間(200分) - 三語言AC題解(Python/Java/Cpp)

?? 大家好這里是清隆學長 ,一枚熱愛算法的程序員 ? 本系列打算持續跟新華為OD-C/D卷的三語言AC題解 ?? ACM銀牌??| 多次AK大廠筆試 | 編程一對一輔導 ?? 感謝大家的訂閱? 和 喜歡?? ??在線評測鏈接 運輸時間(200分) ?? 評測功能需要訂閱專欄后私信聯系清隆解…

【面試干貨】索引的優缺點

【面試干貨】索引的優缺點 1、創建索引可以大大提高系統的性能&#xff08;**優點**&#xff09;2、增加索引也有許多不利的方面&#xff08;**缺點**&#xff09; &#x1f496;The Begin&#x1f496;點點關注&#xff0c;收藏不迷路&#x1f496; 1、創建索引可以大大提高系…