什么是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接口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)