SpringBoot如何使用Feign实现远程接口调用

SpringBoot如何使用Feign实现远程接口调用,第1张

什么是Feign?与 Ribbon ⼀样,Feign 也是由 Netflflix 提供的,Feign 是⼀个声明式、模版化的 Web Service 客户端,它简化了开发者编写 Web 服务客户端的 *** 作,开发者可以通过简单的接⼝和注解来调⽤ >

一般来说我们的service接口都是只有一个实现类而已,但有些时候,确实会有两个实现类的情况,那这个时候我们怎么自动注入这个接口呢?

如果我们直接注入接口的话,idea就会给我们报错

1、其实自动注入时,它首先会先根据class类型来找到相应的实现类,如果这里有两个相同类型的实现类时,那我们可以通过实现类的id来找,比如说PersonServiceImp1可以通过personServiceImp1这个id来找

2、通过注解@Qualifier + @Autowired进行注入

3、我们也可以通过@Resource来代替@Autowired,通过我们指定我们指定的名字进行注入

首先要先在实现类上指定名字

然后我们在注入的时候用@Resource来代替@Autowired

不会搭建项目的同学请点开我个人中心看我第一篇springboot的博客

前两章我们做了登陆注册,按照程序下边登陆后应该要查询数据,所以抽出两章来做查询以及链表查询

本章先来做一个简单的查询功能

首先建表添加数据

由于查询表内所有内容,返回数据有可能是多行,所以返回值是 List

由于只有一个get方法,所以用指定别名,只需要@GetMapping!

返回值

大家发现这个查询过于简单,如果有一个需求,需要查询a表的时候带出b表对象,也就是外键约束,怎么来做?我们下长讲解

bilibili视频教程同步更新

在这篇博客中,会记录 springfox3 的基本配置与使用;由于swagger-ui看得不是很习惯,额外引入了 knife4j ,使用增强版本的swagger的前端ui。

注意

@ConditionalOnProperty 注解声明了当 springfoxdocumentationenabled 为 true 时启用配置,而且默认值就是 true (Swagger仅仅建议在开发阶段使用);

这里以 WebMvcConfig 为例。

@ApiImplicitParam

用在@ApiImplicitParams注解中,指定一个请求参数的各个方面

name:参数名

value:参数的汉字说明、解释

required:参数是否必须传

paramType:参数放在哪个地方

· header --> 请求参数的获取:@RequestHeader

· query --> 请求参数的获取:@RequestParam

· path(用于restful接口)--> 请求参数的获取:@PathVariable

· body(不常用)

· form(不常用)

dataType:参数类型,默认String,其它值dataType="Integer"

defaultValue:参数的默认值

swagger页面:项目地址 + /swagger-ui/indexhtml

knife4j页面:项目地址 + /dochtml

1 swagger3中,设置全局参数不生效

注解:

该注解主要是用于rest风格的搭配使用,在请求路径中不再以k : v的形式给出请求参数与值;而是直接给定一个值。如果方法参数是一个Map<String, String>将会包含路径中所有的变量与值。

访问 :浏览器输入路径变量即可,以下是rest风格的get请求的展示,直接在地址栏发起请求就是一个get请求

获取所有访问路径上的请求参数:localhost:8080/ car/{id}/owner/{username}age=19&inters=

该注解主要用于获取请求头header中的数据,客户端请求之后可以拿到一些头部携带的参数。支持传统的SpringMVC,也支持WebFlux响应式。如果方法参数是一个Map<String, String>将会包含所有的请求头与值

测试:

主要用于获取请求参数名称,设置参数是否可有可无以及默认值。

@RequestParam注解详解地址: blogcsdnnet/weixin_4380 …

主要用于获取Cookie值

主要用在 请求转发 时,如果页面无法直接跳转(如WEB-INF下的success页面)可以使用转发的手段。当进行转发时可以在请求中携带上请求的参数,转发会携带上一次请求的参数(一次完整的请求包括转发)

由于是同一次请求,因此也可以直接拿到原生的>

一份好的接口文档能够让接口调用者很清晰的知道如何调用一个API接口,包括请求方式、传参规范、接口返回信息等;也能帮助团队新人快速了解业务。

传统的做法是由开发人员维护一个API接口文档,一般是一个word文档或一个提供接口文档管理的网站。这种做法有很多弊端:文档难以维护、浪费开人员时间、文档难以与接口保持一致等。

Swagger2的出现很好的解决了上述问题,可以实现接口文档实时在线生成,提供在线接口测试功能。唯一的弊端就是对接口程序有侵入,但本人认为还是利大于弊的。

接下来我们将Swagger2整合到springboot项目中,并用swagger-bootstrap-ui对Swagger2进行界面美化,废话不多说,我们开始。。。

在pomxml中导入

在applicationyml中设置swagger2是否开启的开关,关闭后接口文档被关闭,在生产环境部署时就需要关闭接口文档。

1创建注解SwaggerCustomIgnorejava,主要用于忽略某些不想生成接口文档的接口。

2创建配置类SpringfoxSwagger2Configjava,配置Swagger接口文档生成规则和过滤规则。

3拦截器排除swagger相关资源,新建或修改WebConfigjava文件,内容如下。

1编写内容参考如下

2注解说明

启动项目,浏览器输入>

以上就是关于SpringBoot如何使用Feign实现远程接口调用全部的内容,包括:SpringBoot如何使用Feign实现远程接口调用、SpringBoot Restful 接口实现、springboot中如何注入一个多个实现类service接口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9418811.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存