国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

ApiBoot - ApiBoot Http Converter 使用文檔

dance / 1495人閱讀

摘要:如下所示不配置默認(rèn)使用自定義是的概念,用于自定義轉(zhuǎn)換實(shí)現(xiàn),比如自定義格式化日期自動(dòng)截取小數(shù)點(diǎn)等。下面提供一個(gè)的簡單示例,具體的使用請參考官方文檔。

ApiBoot是一款基于SpringBoot1.x,2.x的接口服務(wù)集成基礎(chǔ)框架, 內(nèi)部提供了框架的封裝集成、使用擴(kuò)展、自動(dòng)化完成配置,讓接口開發(fā)者可以選著性完成開箱即用, 不再為搭建接口框架而犯愁,從而極大的提高開發(fā)效率。

FastJson是阿里巴巴提供的一款Json格式化插件。

ApiBoot提供了FastJson驅(qū)動(dòng)轉(zhuǎn)換接口請求的Json字符串?dāng)?shù)據(jù),添加該依賴后會(huì)自動(dòng)格式化時(shí)間(格式:YYYY-MM-DD HH:mm:ss)、空對(duì)象轉(zhuǎn)換為空字符串返回、空Number轉(zhuǎn)換為0等,還會(huì)自動(dòng)裝載ValueFilter接口的實(shí)現(xiàn)類來完成自定義的數(shù)據(jù)格式轉(zhuǎn)換。

引入Http Converter

ApiBoot Http Converter使用非常簡單,只需要在pom.xml添加如下依賴:



    org.minbox.framework
    api-boot-starter-http-converter

ApiBoot所提供的依賴都不需要添加版本號(hào),具體查看ApiBoot版本依賴

相關(guān)配置

ApiBoot Http Converter通過使用SpringBoot內(nèi)置的配置參數(shù)名來確定是否開啟,在SpringBoot內(nèi)可以通過spring.http.converters.preferred-json-mapper來修改首選的Json格式化插件,SpringBoot已經(jīng)提供了三種,分別是:gsonjacksonjsonb,當(dāng)我們配置該參數(shù)為fastJson不進(jìn)行配置就會(huì)使用ApiBoot Http Converter提供的fastJson來格式化轉(zhuǎn)換Json返回?cái)?shù)據(jù)。

如下所示:

spring:
  http:
    converters:
      # 不配置默認(rèn)使用fastJson
      preferred-json-mapper: fastJson
自定義ValueFilter

ValueFilterFastJson的概念,用于自定義轉(zhuǎn)換實(shí)現(xiàn),比如:自定義格式化日期、自動(dòng)截取小數(shù)點(diǎn)等。

下面提供一個(gè)ValueFilter的簡單示例,具體的使用請參考FastJson官方文檔。

ValueFilter示例

在使用ValueFilter時(shí)一般都會(huì)搭配一個(gè)對(duì)應(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 對(duì)象
     * @param name   對(duì)象的字段的名稱
     * @param value  對(duì)象的字段的值
     */
    @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 字段所屬對(duì)象實(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://m.specialneedsforspecialkids.com/yun/74055.html

相關(guān)文章

  • ApiBoot 2.0.4.RELEASE版本發(fā)布

    摘要:是一款基于的接口服務(wù)集成基礎(chǔ)框架,內(nèi)部提供了框架的封裝集成,讓接口開發(fā)者完成開箱即用,不再為搭建接口框架而犯愁,從而極大的提高開發(fā)效率。 ApiBoot是一款基于SpringBoot1.x、SpringBoot2.x的接口服務(wù)集成基礎(chǔ)框架,內(nèi)部提供了框架的封裝集成,讓接口開發(fā)者完成開箱即用,不再為搭建接口框架而犯愁,從而極大的提高開發(fā)效率。通過在我的SpringBoot系列教程中得到的...

    JellyBool 評(píng)論0 收藏0
  • ApiBoot - ApiBoot Swagger 使用文檔

    摘要:相關(guān)配置配置參數(shù)參數(shù)介紹默認(rèn)值是否啟用文檔標(biāo)題快速集成文檔文檔描述通過自動(dòng)化配置快速集成文檔,僅需一個(gè)注解一個(gè)依賴即可。注意通過所獲取的類型都為。 ApiBoot是一款基于SpringBoot1.x,2.x的接口服務(wù)集成基礎(chǔ)框架, 內(nèi)部提供了框架的封裝集成、使用擴(kuò)展、自動(dòng)化完成配置,讓接口開發(fā)者可以選著性完成開箱即用, 不再為搭建接口框架而犯愁,從而極大...

    yuanxin 評(píng)論0 收藏0
  • ApiBoot - ApiBoot Quartz 使用文檔

    摘要:重復(fù)任務(wù)循環(huán)任務(wù),當(dāng)在不傳遞重復(fù)執(zhí)行次數(shù)時(shí),不進(jìn)行重復(fù)執(zhí)行,僅僅執(zhí)行一次,如下所示參數(shù)恒宇少年每次循環(huán)的間隔時(shí)間,單位毫秒循環(huán)次數(shù)開始時(shí)間,秒后執(zhí)行任務(wù)類任務(wù)由類進(jìn)行構(gòu)建。 ApiBoot Quartz ApiBoot內(nèi)部集成了Quartz,提供了數(shù)據(jù)庫方式、內(nèi)存方式的進(jìn)行任務(wù)的存儲(chǔ),其中數(shù)據(jù)庫方式提供了分布式集群任務(wù)調(diào)度,任務(wù)自動(dòng)平滑切換執(zhí)行節(jié)點(diǎn)。 引用ApiBoot Quartz ...

    CocoaChina 評(píng)論0 收藏0
  • ApiBoot - ApiBoot Resource Load 使用文檔

    摘要:注意如果你的方法返回對(duì)象只有一個(gè)資源對(duì)象需要映射,可以單獨(dú)配置使用注解。集合資源加載返回值為集合的示例類型作為返回值時(shí),其中注意必須是對(duì)象類型。如果你有想要的使用方式,你就可以提交 ApiBoot Resource Load ApiBoot Resource Load是一款資源與業(yè)務(wù)完全分離的基礎(chǔ)框架,可以整合微服務(wù)(Feign、OpenFeign)進(jìn)行負(fù)載均衡讀取固定類型、固定所屬業(yè)...

    diabloneo 評(píng)論0 收藏0
  • ApiBoot - ApiBoot Security Oauth 依賴使用文檔

    摘要:如果全部使用默認(rèn)值的情況話不需要做任何配置方式前提項(xiàng)目需要添加數(shù)據(jù)源依賴。獲取通過獲取啟用在使用格式化時(shí)非常簡單的,配置如下所示開啟轉(zhuǎn)換轉(zhuǎn)換時(shí)所需加密,默認(rèn)為恒宇少年于起宇默認(rèn)不啟用,簽名建議進(jìn)行更換。 ApiBoot是一款基于SpringBoot1.x,2.x的接口服務(wù)集成基礎(chǔ)框架, 內(nèi)部提供了框架的封裝集成、使用擴(kuò)展、自動(dòng)化完成配置,讓接口開發(fā)者可以選著性完成開箱即...

    Tonny 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<