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

