springboot openfeign從JSON文件讀取數(shù)據(jù)問(wèn)題
對(duì)openfeign不清楚的同學(xué)可以參考下我的這篇文章:springboot~openfeign從此和httpClient說(shuō)再見
對(duì)于openfeign來(lái)說(shuō),幫助我們解決了服務(wù)端調(diào)用服務(wù)端的問(wèn)題,你不需要關(guān)心服務(wù)端的URI,只需要知道它在eureka里的服務(wù)名稱即可,同時(shí)你與服務(wù)端確定了服務(wù)方法的參數(shù)和返回值之后,我們可以在單元測(cè)試時(shí)mock這些服務(wù)端方法即可,真正做到了單元測(cè)試,而不需要與外界資源進(jìn)行交互。
今天主要說(shuō)一下在openfeign里讀取JSON文件的問(wèn)題,我們將測(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ù)問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
SpringBoot集成RocketMQ發(fā)送事務(wù)消息的原理解析
RocketMQ 的事務(wù)消息提供類似 X/Open XA 的分布事務(wù)功能,通過(guò)事務(wù)消息能達(dá)到分布式事務(wù)的最終一致,這篇文章主要介紹了SpringBoot集成RocketMQ發(fā)送事務(wù)消息,需要的朋友可以參考下2022-06-06java實(shí)現(xiàn)動(dòng)態(tài)數(shù)組
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)動(dòng)態(tài)數(shù)組,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08