第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Spring Boot中預(yù)處理第三方庫(kù)方法

Spring Boot中預(yù)處理第三方庫(kù)方法

藍(lán)山帝景 2021-06-07 08:39:16
我們正在探索 Spring Boot 1.5 中的 Micrometer 指標(biāo)收集庫(kù)。Micrometer 在Tag界面中提供了一個(gè)靜態(tài)方法來(lái)為指標(biāo)創(chuàng)建標(biāo)簽。public interface Tag {    String getKey();    String getValue();    static Tag of(String key, String value) {        return new ImmutableTag(key, value);    }}ImmutableTag 的實(shí)現(xiàn)如下:public class ImmutableTag implements Tag {    private String key;    private String value;    public ImmutableTag(String key, String value) {        requireNonNull(key);        requireNonNull(value);        this.key = key;        this.value = value;    }...other methods...}現(xiàn)在,我們正在以編程方式收集一些標(biāo)簽,最終可能會(huì)得到一個(gè)空標(biāo)簽(由于 會(huì)引發(fā)異常requireNonNull())。但是在遇到空值時(shí),我們可以用默認(rèn)字符串(例如“未知”)替換標(biāo)記值。處理這個(gè)問(wèn)題的最佳方法是什么?我想到了以下幾點(diǎn):Try / Catch:將所有此類語(yǔ)句括在一個(gè)try/catch塊中。我知道這可能很昂貴且難以維護(hù)。在我們的末尾處理 null: Check for any null tag being passed,并將其替換為默認(rèn)字符串。但是,我們會(huì)有很多這樣的語(yǔ)句,并且希望有一些默認(rèn)情況下會(huì)發(fā)生這種情況的配置。Wrapper接口:創(chuàng)建一個(gè)TagWrapper interface,用默認(rèn)值替換null,調(diào)用Tag.of()方法?,F(xiàn)在對(duì)我來(lái)說(shuō)似乎是最好的選擇,但是,當(dāng)不再需要它時(shí)(也許稍后會(huì)在庫(kù)中引入這樣的方法),擺脫包裝器將包括很多更改。Spring 中是否有一些配置允許我在不創(chuàng)建包裝器的情況下預(yù)先處理第三方庫(kù)方法?
查看完整描述

3 回答

?
侃侃無(wú)極

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊

也許使用 Spring AOP。就像是:


@around(value="execution(* package.name.class.Tag.of)")

public void wrapTags(ProceedingJoinPoint call){

   try {

     Object[] args = call.getArgs();

     // wrap args in Optional.ofNullable

     call.proceed();

   } catch (Exception e){

      // handle exception

   }

}


查看完整回答
反對(duì) 回復(fù) 2021-06-10
?
暮色呼如

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊

我可能遺漏了一些東西,但是您不能將值包裝在傳遞給Tag接口的 Optional 中嗎?


// wrapping values in Optional

public static String wrapTags(String s){

  return Optional.ofNullable(s).orElse("UNKNOWN");

}



查看完整回答
反對(duì) 回復(fù) 2021-06-10
  • 3 回答
  • 0 關(guān)注
  • 214 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)