由于Feign是完全支持Spring MVC注解的, 所以推荐使用前两种Feign设置header的方式, 即: Spring MVC中使用注解设置header.
在application.yml中配置
编写feignClient
FeignClient使用 @RequestLine 注解, 而未配置feign自带契约 Contract 时, @Headers 不会起作用, 而且启动项目会报错:
查阅官方文档,feign 默认使用的是spring mvc 注解(就是RequestMapping 之类的) ,所以需要通过新增一个配置类来修改其契约 ,即可可以解决该问题了。
使用@Param可以动态配置Header属性
同上
值得注意的一点是:如果FeignRequestInterceptor注入到spring容器的话就会全局生效, 就是说即使在没有指定configuration属性的FeignClient该配置也会生效, 为什么呢?有兴趣的请看源码分析.
配置@Component或@Service 或 @Configuration 就可以将该配置注入spring容器中, 即可实现全局配置, 从而该项目中的所有FeignClient的feign接口都可以使用该配置.
如果只想给指定FeignClient的feign接口使用该配置, 请勿将该类配置注入spring中.
之前一直没有写ES相关的博文,现在开始补课,预计5-6篇博文将es的使用姿势展示给各位小伙伴;本文将作为es结合springboot的第一篇博文,基本项目环境搭建
本项目借助 SpringBoot 2.2.1.RELEASE + maven 3.5.3 + IDEA 进行开发
开一个web服务用于测试
配置文件application.yml,注意下面的配置信息,下面采用的是由我们自己来解析配置的方式
说明
上面配置介绍的是一种偏基础的es文档 *** 作姿势,相比较于封装得更好的 spring-boot-starter-data-elasticsearch ,使用更加灵活
接下来我们基于 RestHighLevelClient 来 *** 作es,首先第一步就是需要初始化这实例
注意上面的实现,用户名 + 密码并没有使用,当es设置了用户名、密码之后,是通过每次请求时,在请求头基于Basic Auth方式进行身份验证的;后面会介绍到
我们在本机搭建了一个es用于模拟测试,在上面的配置完之后,就可以直接与es进行交互了
下面是一个简单的使用姿势
注意上面的实现,有下面几个重要知识点
身份验证
采用Basic Auth方式进行身份校验,简单来说就是在请求头中添加一个
• key = Authorization
• value = "Basic " + base64(user + ":" + pwd)
访问姿势
上面是一个根据 id 查询文档的实例,简单可以理解为三步
•创建: XxRequest
•添加请求头: RequestOptions.Builder.addHeader
•执行: client.get(xxRequest, RequestOptions)
•工程:https://github.com/liuyueyi/spring-boot-demo
•源码:https://github.com/liuyueyi/spring-boot-demo/tree/master/spring-boot/142-search-es
尽信书则不如,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
下面一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛
•一灰灰Blog个人博客 https://blog.hhui.top
•一灰灰Blog-Spring专题博客 http://spring.hhui.top
[1] 200605-Centos 安装ElasticSearch - 一灰灰Blog:https://blog.hhui.top/hexblog/2020/06/05/200605-Centos-%E5%AE%89%E8%A3%85ElasticSearch/
[2] 210329-Elastic &Kibana安装与基本使用 - 一灰灰Blog:https://blog.hhui.top/hexblog/2021/03/29/210329-Elastic-Kibana%E5%AE%89%E8%A3%85%E4%B8%8E%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)