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环境中,在生产环境里,将使用真正的服务。
总结
以上所述是小编给大家介绍的springboot openfeign从JSON文件读取数据问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
相关文章
Java中length,length(),size()详解及区别
这篇文章主要介绍了Java中length,length(),size()详解及区别的相关资料,需要的朋友可以参考下2016-11-11
IntelliJ IDEA快速查询maven依赖关系图文教程
Maven提供了来查看依赖关系,而IDE往往提供了更加便利的方式,比如Eclipse或者IDEA都有类似的功能,下面这篇文章主要给大家介绍了关于IntelliJ IDEA快速查询maven依赖关系的相关资料,需要的朋友可以参考下2023-11-11
JAVA内存模型和Happens-Before规则知识点讲解
在本篇文章里小编给大家整理的是一篇关于JAVA内存模型和Happens-Before规则知识点内容,有需要的朋友们跟着学习下。2020-11-11
SpringBoot中通过8项配置优化提升Tomcat性能的配置方法
优化Spring Boot,Spring Cloud 应用程序中Tomcat的配置有助于提高性能和资源利用率,这篇文章主要介绍了SpringBoot中通过8项配置优化提升Tomcat性能的配置方法,需要的朋友可以参考下2024-08-08
Mybatis配置之<typeAliases>别名配置元素解析
这篇文章主要介绍了Mybatis配置之<typeAliases>别名配置元素解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-07-07
Spring Boot 从静态json文件中读取数据所需字段
本文重点给大家介绍Spring Boot 从静态json文件中读取数据所需字段,感兴趣的朋友跟随脚本之家小编一起学习吧2018-05-05
使用jquery 的ajax 与 Java servlet的交互代码实例
这篇文章主要介绍了使用jquery 的ajax 与 Java servlet的交互代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2019-09-09


最新评论