欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot openfeign從JSON文件讀取數(shù)據(jù)問題

 更新時間:2018年06月11日 14:08:57   作者: 張占嶺  
今天主要說一下在openfeign里讀取JSON文件的問題,我們將測試所需要的數(shù)據(jù)存儲到文件里,在修改時關(guān)注點(diǎn)比較單純

對openfeign不清楚的同學(xué)可以參考下我的這篇文章:springboot~openfeign從此和httpClient說再見

對于openfeign來說,幫助我們解決了服務(wù)端調(diào)用服務(wù)端的問題,你不需要關(guān)心服務(wù)端的URI,只需要知道它在eureka里的服務(wù)名稱即可,同時你與服務(wù)端確定了服務(wù)方法的參數(shù)和返回值之后,我們可以在單元測試時mock這些服務(wù)端方法即可,真正做到了單元測試,而不需要與外界資源進(jìn)行交互。

今天主要說一下在openfeign里讀取JSON文件的問題,我們將測試所需要的數(shù)據(jù)存儲到文件里,在修改時關(guān)注點(diǎn)比較單純。

JSON幫助類,主要使用了objectMapper這個對象

/**
 * 將json轉(zhuǎn)換為對象.
 *
 * @param path 文件路徑
 */
 public <T> T fromJson(String path, Class<T> cls) {
 try {
  return objectMapper.readValue(this.fromResource(path, Charsets.UTF_8), cls);
 } catch (Exception e) {
  throw new IllegalStateException("讀取json失敗:" + path, e);
 }
 }
 /**
 * 將json數(shù)組轉(zhuǎn)換為對象列表.
 *
 * @param path 文件路徑
 */
 public <T> List<T> listFromJson(String path, TypeReference typeReference) {
 try {
  return objectMapper.readValue(fromResource(path, Charsets.UTF_8), typeReference);
 } catch (Exception e) {
  throw new IllegalStateException("讀取json失敗:" + path, e);
 }
 }

在Mock類型中,可以使用這個方法讀JSON文件的內(nèi)容

@Configuration
@Profile("integTest")
public class ServiceClientMock {
 @Bean
 public ServiceClient registerServiceClient() {
 AccountClient client = mock(AccountClient.class);
 when(client.del(
  anyString(),
  anyString(),
  anyString(),
  anyMap())).thenReturn(fromJson("order/orders.json", Map.class));
 }
}

上面代碼主要在模擬了ServiceClient對象里的del方法,有三個字符型輸入?yún)?shù),返回值從JSON文件讀取,在單元測試?yán)?,直接注入的是ServiceClientMock對象,我們

可以從@Profile注解里看到,它運(yùn)行在integTest環(huán)境中,在生產(chǎn)環(huán)境里,將使用真正的服務(wù)。

總結(jié)

以上所述是小編給大家介紹的springboot openfeign從JSON文件讀取數(shù)據(jù)問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Java擦除和轉(zhuǎn)換實(shí)例分析

    Java擦除和轉(zhuǎn)換實(shí)例分析

    這篇文章主要介紹了Java擦除和轉(zhuǎn)換,結(jié)合實(shí)例形式分析了java擦除和轉(zhuǎn)換概念、功能及相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • SpringBoot集成RocketMQ發(fā)送事務(wù)消息的原理解析

    SpringBoot集成RocketMQ發(fā)送事務(wù)消息的原理解析

    RocketMQ 的事務(wù)消息提供類似 X/Open XA 的分布事務(wù)功能,通過事務(wù)消息能達(dá)到分布式事務(wù)的最終一致,這篇文章主要介紹了SpringBoot集成RocketMQ發(fā)送事務(wù)消息,需要的朋友可以參考下
    2022-06-06
  • 基于字符串常用API(詳解)

    基于字符串常用API(詳解)

    下面小編就為大家?guī)硪黄谧址S肁PI(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Java文件IO操作教程之DirectIO的意義

    Java文件IO操作教程之DirectIO的意義

    這篇文章主要給大家介紹了關(guān)于Java文件IO操作教程之DirectIO的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 一文詳解Java中的Stream的匯總和分組操作

    一文詳解Java中的Stream的匯總和分組操作

    這篇文章主要為大家詳細(xì)介紹了Java8中的Stream的匯總和分組的操作,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Java有一定幫助,需要的可以參考一下
    2022-09-09
  • java實(shí)現(xiàn)動態(tài)數(shù)組

    java實(shí)現(xiàn)動態(tài)數(shù)組

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)動態(tài)數(shù)組,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Java流形式返回前端的實(shí)現(xiàn)示例

    Java流形式返回前端的實(shí)現(xiàn)示例

    ? Java后端開發(fā)項(xiàng)目時,需要給前端傳一些數(shù)據(jù),本文主要介紹了Java流形式返回前端的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 樹,二叉樹(完全二叉樹,滿二叉樹)概念圖解

    樹,二叉樹(完全二叉樹,滿二叉樹)概念圖解

    今天小編就為大家分享一篇關(guān)于二叉樹的圖文詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧,希望能對你有所幫助
    2021-07-07
  • Java?SWT中常見彈出框?qū)嵗偨Y(jié)

    Java?SWT中常見彈出框?qū)嵗偨Y(jié)

    剛開始寫Java工具的小伙伴可能不知道怎么寫消息對話框,在這里總結(jié)一些常用的幾種消息彈出框,下面這篇文章主要給大家介紹了關(guān)于Java?SWT中常見彈出框的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • SpringBoot整合Redisson的兩種方式

    SpringBoot整合Redisson的兩種方式

    這篇文章主要介紹了Spring Boot整合Redisson的兩種方式,方式一直接使用yml配置,方式二創(chuàng)建RedissonConfig配置類,文中通過代碼示例講解的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下
    2024-04-04

最新評論