摘要:如下所示不配置默認(rèn)使用自定義是的概念,用于自定義轉(zhuǎn)換實(shí)現(xiàn),比如自定義格式化日期自動截取小數(shù)點(diǎn)等。下面提供一個的簡單示例,具體的使用請參考官方文檔。
ApiBoot是一款基于SpringBoot1.x,2.x的接口服務(wù)集成基礎(chǔ)框架, 內(nèi)部提供了框架的封裝集成、使用擴(kuò)展、自動化完成配置,讓接口開發(fā)者可以選著性完成開箱即用, 不再為搭建接口框架而犯愁,從而極大的提高開發(fā)效率。
FastJson是阿里巴巴提供的一款Json格式化插件。
ApiBoot提供了FastJson驅(qū)動轉(zhuǎn)換接口請求的Json字符串?dāng)?shù)據(jù),添加該依賴后會自動格式化時間(格式:YYYY-MM-DD HH:mm:ss)、空對象轉(zhuǎn)換為空字符串返回、空Number轉(zhuǎn)換為0等,還會自動裝載ValueFilter接口的實(shí)現(xiàn)類來完成自定義的數(shù)據(jù)格式轉(zhuǎn)換。
引入Http ConverterApiBoot Http Converter使用非常簡單,只需要在pom.xml添加如下依賴:
org.minbox.framework api-boot-starter-http-converter
ApiBoot所提供的依賴都不需要添加版本號,具體查看ApiBoot版本依賴
相關(guān)配置ApiBoot Http Converter通過使用SpringBoot內(nèi)置的配置參數(shù)名來確定是否開啟,在SpringBoot內(nèi)可以通過spring.http.converters.preferred-json-mapper來修改首選的Json格式化插件,SpringBoot已經(jīng)提供了三種,分別是:gson、jackson、jsonb,當(dāng)我們配置該參數(shù)為fastJson或不進(jìn)行配置就會使用ApiBoot Http Converter提供的fastJson來格式化轉(zhuǎn)換Json返回數(shù)據(jù)。
如下所示:
spring: http: converters: # 不配置默認(rèn)使用fastJson preferred-json-mapper: fastJson自定義ValueFilter
ValueFilter是FastJson的概念,用于自定義轉(zhuǎn)換實(shí)現(xiàn),比如:自定義格式化日期、自動截取小數(shù)點(diǎn)等。
下面提供一個ValueFilter的簡單示例,具體的使用請參考FastJson官方文檔。
ValueFilter示例在使用ValueFilter時一般都會搭配一個對應(yīng)的自定義@Annotation來進(jìn)行組合使用,保留自定義小數(shù)點(diǎn)位數(shù)的示例如下所示:
創(chuàng)建 BigDecimalFormatter Annotation
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER}) @Retention(RetentionPolicy.RUNTIME) public @interface BigDecimalFormatter { /** * 小數(shù)位數(shù),默認(rèn)保留兩位 * @return */ int scale() default 2; }
創(chuàng)建 BigDecimal ValueFilter
public class BigDecimalValueFilter implements ValueFilter { /** * logback */ Logger logger = LoggerFactory.getLogger(BigDecimalValueFilter.class); /** * @param object 對象 * @param name 對象的字段的名稱 * @param value 對象的字段的值 */ @Override public Object process(Object object, String name, Object value) { if (ValidateTools.isEmpty(value) || !(value instanceof BigDecimal)) { return value; } return convertValue(object, name, value); } /** * 轉(zhuǎn)換值 * * @param object 字段所屬對象實(shí)例 * @param name 字段名稱 * @param value 字段的值 * @return */ Object convertValue(Object object, String name, Object value) { try { /** * 反射獲取field */ Field field = object.getClass().getDeclaredField(name); /** *判斷字段是否存在@BigDecimalFormatter注解 */ if (field.isAnnotationPresent(BigDecimalFormatter.class)) { BigDecimalFormatter bigDecimalFormatter = field.getAnnotation(BigDecimalFormatter.class); // 執(zhí)行格式化 BigDecimal decimal = (BigDecimal) value; System.out.println(bigDecimalFormatter.scale()); // 保留小數(shù)位數(shù),刪除多余 value = decimal.setScale(bigDecimalFormatter.scale(), BigDecimal.ROUND_DOWN).doubleValue(); } } catch (Exception e) { logger.error("格式化BigDecimal字段出現(xiàn)異常:{}", e.getMessage()); } return value; } }
使用 BigDecimalFormatter Annotation
@BigDecimalFormatter private BigDecimal decimalValue;
本章源碼地址:https://github.com/hengboy/api-boot/tree/master/api-boot-samples/api-boot-sample-http-converter
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/74055.html
摘要:是一款基于的接口服務(wù)集成基礎(chǔ)框架,內(nèi)部提供了框架的封裝集成,讓接口開發(fā)者完成開箱即用,不再為搭建接口框架而犯愁,從而極大的提高開發(fā)效率。 ApiBoot是一款基于SpringBoot1.x、SpringBoot2.x的接口服務(wù)集成基礎(chǔ)框架,內(nèi)部提供了框架的封裝集成,讓接口開發(fā)者完成開箱即用,不再為搭建接口框架而犯愁,從而極大的提高開發(fā)效率。通過在我的SpringBoot系列教程中得到的...
摘要:相關(guān)配置配置參數(shù)參數(shù)介紹默認(rèn)值是否啟用文檔標(biāo)題快速集成文檔文檔描述通過自動化配置快速集成文檔,僅需一個注解一個依賴即可。注意通過所獲取的類型都為。 ApiBoot是一款基于SpringBoot1.x,2.x的接口服務(wù)集成基礎(chǔ)框架, 內(nèi)部提供了框架的封裝集成、使用擴(kuò)展、自動化完成配置,讓接口開發(fā)者可以選著性完成開箱即用, 不再為搭建接口框架而犯愁,從而極大...
摘要:重復(fù)任務(wù)循環(huán)任務(wù),當(dāng)在不傳遞重復(fù)執(zhí)行次數(shù)時,不進(jìn)行重復(fù)執(zhí)行,僅僅執(zhí)行一次,如下所示參數(shù)恒宇少年每次循環(huán)的間隔時間,單位毫秒循環(huán)次數(shù)開始時間,秒后執(zhí)行任務(wù)類任務(wù)由類進(jìn)行構(gòu)建。 ApiBoot Quartz ApiBoot內(nèi)部集成了Quartz,提供了數(shù)據(jù)庫方式、內(nèi)存方式的進(jìn)行任務(wù)的存儲,其中數(shù)據(jù)庫方式提供了分布式集群任務(wù)調(diào)度,任務(wù)自動平滑切換執(zhí)行節(jié)點(diǎn)。 引用ApiBoot Quartz ...
摘要:注意如果你的方法返回對象只有一個資源對象需要映射,可以單獨(dú)配置使用注解。集合資源加載返回值為集合的示例類型作為返回值時,其中注意必須是對象類型。如果你有想要的使用方式,你就可以提交 ApiBoot Resource Load ApiBoot Resource Load是一款資源與業(yè)務(wù)完全分離的基礎(chǔ)框架,可以整合微服務(wù)(Feign、OpenFeign)進(jìn)行負(fù)載均衡讀取固定類型、固定所屬業(yè)...
摘要:如果全部使用默認(rèn)值的情況話不需要做任何配置方式前提項(xiàng)目需要添加數(shù)據(jù)源依賴。獲取通過獲取啟用在使用格式化時非常簡單的,配置如下所示開啟轉(zhuǎn)換轉(zhuǎn)換時所需加密,默認(rèn)為恒宇少年于起宇默認(rèn)不啟用,簽名建議進(jìn)行更換。 ApiBoot是一款基于SpringBoot1.x,2.x的接口服務(wù)集成基礎(chǔ)框架, 內(nèi)部提供了框架的封裝集成、使用擴(kuò)展、自動化完成配置,讓接口開發(fā)者可以選著性完成開箱即...
閱讀 1474·2021-11-17 09:33
閱讀 3070·2021-10-13 09:39
閱讀 2736·2021-10-09 10:01
閱讀 2492·2021-09-29 09:35
閱讀 3976·2021-09-26 10:01
閱讀 3550·2019-08-26 18:37
閱讀 3203·2019-08-26 13:46
閱讀 1941·2019-08-26 13:39