springboot openfeign從JSON文件讀取數(shù)據(jù)問題
對(duì)openfeign不清楚的同學(xué)可以參考下我的這篇文章:springboot~openfeign從此和httpClient說再見
對(duì)于openfeign來說,幫助我們解決了服務(wù)端調(diào)用服務(wù)端的問題,你不需要關(guān)心服務(wù)端的URI,只需要知道它在eureka里的服務(wù)名稱即可,同時(shí)你與服務(wù)端確定了服務(wù)方法的參數(shù)和返回值之后,我們可以在單元測(cè)試時(shí)mock這些服務(wù)端方法即可,真正做到了單元測(cè)試,而不需要與外界資源進(jìn)行交互。
今天主要說一下在openfeign里讀取JSON文件的問題,我們將測(cè)試所需要的數(shù)據(jù)存儲(chǔ)到文件里,在修改時(shí)關(guān)注點(diǎn)比較單純。
JSON幫助類,主要使用了objectMapper這個(gè)對(duì)象
/**
* 將json轉(zhuǎn)換為對(duì)象.
*
* @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)換為對(duì)象列表.
*
* @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類型中,可以使用這個(gè)方法讀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對(duì)象里的del方法,有三個(gè)字符型輸入?yún)?shù),返回值從JSON文件讀取,在單元測(cè)試?yán)?,直接注入的是ServiceClientMock對(duì)象,我們
可以從@Profile注解里看到,它運(yùn)行在integTest環(huán)境中,在生產(chǎn)環(huán)境里,將使用真正的服務(wù)。
總結(jié)
以上所述是小編給大家介紹的springboot openfeign從JSON文件讀取數(shù)據(jù)問題,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
m1 Mac設(shè)置多jdk版本并動(dòng)態(tài)切換的實(shí)現(xiàn)
本文主要介紹 Mac 下如何安裝 JDK 并且多版本如何切換,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
Java中l(wèi)ength,length(),size()詳解及區(qū)別
這篇文章主要介紹了Java中l(wèi)ength,length(),size()詳解及區(qū)別的相關(guān)資料,需要的朋友可以參考下2016-11-11
IntelliJ?IDEA快速查詢maven依賴關(guān)系圖文教程
Maven提供了來查看依賴關(guān)系,而IDE往往提供了更加便利的方式,比如Eclipse或者IDEA都有類似的功能,下面這篇文章主要給大家介紹了關(guān)于IntelliJ?IDEA快速查詢maven依賴關(guān)系的相關(guān)資料,需要的朋友可以參考下2023-11-11
JAVA內(nèi)存模型和Happens-Before規(guī)則知識(shí)點(diǎn)講解
在本篇文章里小編給大家整理的是一篇關(guān)于JAVA內(nèi)存模型和Happens-Before規(guī)則知識(shí)點(diǎn)內(nèi)容,有需要的朋友們跟著學(xué)習(xí)下。2020-11-11
SpringBoot中通過8項(xiàng)配置優(yōu)化提升Tomcat性能的配置方法
優(yōu)化Spring Boot,Spring Cloud 應(yīng)用程序中Tomcat的配置有助于提高性能和資源利用率,這篇文章主要介紹了SpringBoot中通過8項(xiàng)配置優(yōu)化提升Tomcat性能的配置方法,需要的朋友可以參考下2024-08-08
Mybatis配置之<typeAliases>別名配置元素解析
這篇文章主要介紹了Mybatis配置之<typeAliases>別名配置元素解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
javaweb前端向后端傳值的幾種方式總結(jié)(附代碼)
javaweb是java開發(fā)中的一個(gè)方向,下面這篇文章主要給大家介紹了關(guān)于javaweb前端向后端傳值的幾種方式的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03
SpringBoot集成Validation參數(shù)校驗(yàn)
這篇文章主要為大家詳細(xì)介紹了SpringBoot集成Validation參數(shù)校驗(yàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
Spring Boot 從靜態(tài)json文件中讀取數(shù)據(jù)所需字段
本文重點(diǎn)給大家介紹Spring Boot 從靜態(tài)json文件中讀取數(shù)據(jù)所需字段,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-05-05
使用jquery 的ajax 與 Java servlet的交互代碼實(shí)例
這篇文章主要介紹了使用jquery 的ajax 與 Java servlet的交互代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09

