Spring Cloud OpenFeign - - - >拦截器
创始人
2024-03-01 10:23:11
0

源码地址:https://download.csdn.net/download/weixin_42950079/87209379



SpringMVC拦截器 和 OpenFeign拦截器 的区别

cd

初学者很容易将 Spring MVC 拦截器 和 Spring Cloud OpenFeign 拦截器搞混,误以为OpenFeign拦截器就是SpringMVC拦截器:

  • Spring MVC拦截器发生在客户端服务端之间,在客户端向服务端发送请求时进行拦截处理。

  • Spring Cloud OpenFeign拦截器发生在两个不同的服务之间,在服务消费端发送请求远程调用服务提供方时进行拦截处理。


OpenFeign拦截器

OpenFeign拦截器有两种配置方式:

  • java方式配置

  • application.yml配置文件中配置


java方式配置

  • 1、创建自定义拦截器类,并实现 RequestInterceptor 拦截器接口。
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class OpenFeignRequestInterceptor implements RequestInterceptor {Logger logger = LoggerFactory.getLogger(this.getClass());@Overridepublic void apply(RequestTemplate requestTemplate) {// Todo/*** 根据需求可以在拦截器中扩展需要的功能:*   1、日志记录*   2、设置请求头   requestTemplate.header("xxx", "xxx");*   3、增加参数*   4、修改请求参数 / 修改路径*   5、权限鉴定*   . . .*/logger.info("OpenFeign拦截器 . . .");}
}
  • 2、在配置类中 注入 自定义拦截器类( Bean )
import com.cd.order8010.feign.interceptor.OpenFeignRequestInterceptor;
import feign.Logger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** 全局配置:加了@Configuration注解表示全局配置,对所有服务起作用* 局部配置:不加@Configuration注解表示局部配置,只针对指定的一个服务起作用,需要在 OpenFeign 接口的@FeignClient注解中,通过configuration属性中指定 OpenFeign 的扩展配置类*/
@Configuration
public class OpenFeignConfig {// 日志级别配置@Beanpublic Logger.Level feignLoggerLevel(){return Logger.Level.FULL;}// 自定义拦截器@Beanpublic OpenFeignRequestInterceptor openFeignRequestInterceptor(){return new OpenFeignRequestInterceptor();}
}



application.yml配置文件中配置

  • 1、创建自定义拦截器类,并实现 RequestInterceptor 拦截器接口。
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;public class OpenFeignRequestInterceptor implements RequestInterceptor {Logger logger = LoggerFactory.getLogger(this.getClass());@Overridepublic void apply(RequestTemplate requestTemplate) {// Todo/*** 根据需求可以在拦截器中扩展需要的功能:*   1、日志记录*   2、设置请求头   requestTemplate.header("xxx", "xxx");*   3、增加参数*   4、修改请求参数 / 修改路径*   5、权限鉴定*   . . .*/logger.info("OpenFeign拦截器 . . .");}
}
  • 2、在application.yml配置文件中指定我们创建的自定义OpenFeign拦截器类。
feign:client:config:stock-service:  # 这里写default就是全局配置。如果是写服务名称(如:stock-service),则是针对某个微服务的配置,即局部配置logger-level: BASIC  #日志级别request-interceptors: #自定义拦截器- com.cd.order8010.feign.interceptor.OpenFeignRequestInterceptor

cd



测试

在这里插入图片描述

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...