网站栏目怎么做,手机php网站开发工具,海口网站建设开发,免费的网站推广FeignClient注解中的configuration属性就是设置相关配置#xff0c;但是这个属性写的非常的不好#xff0c;而且在它的注释中也没有写全#xff0c;所以本文记录一下#xff0c;当我们的代码如下时#xff1a;
FeignClient(name xxx, configuration Abc.cl…FeignClient注解中的configuration属性就是设置相关配置但是这个属性写的非常的不好而且在它的注释中也没有写全所以本文记录一下当我们的代码如下时
FeignClient(name xxx, configuration Abc.class)
FeignClient(name zzz)其中这个Abc就是xxx这个client的配置类不是zzz的配置类所以对于zzz来说Abc里的内容不会生效那么Abc里都有哪些对象可以被认为是配置信息呢根据实操Abc这个类中返回如下lite model是被feign认可的它们分别是
RequestInterceptor用于在发送请求前拦截并修改请求例如添加或修改HTTP头信息
Decoder用于将HTTP响应体解码为Java对象。Feign默认提供了ResponseEntityDecoder但你可以自定义解码器来处理特定的响应格式
Encoder用于将Java对象编码为HTTP请求体。Feign默认提供了SpringEncoder但你也可以创建自己的编码器来处理特殊的需求
Contract用于将Feign的接口方法映射为HTTP请求。Feign默认提供了SpringMvcContract它支持Spring MVC的注解
Logger.Level用于配置Feign的日志级别
Logger用于自定义Feign的日志记录器
Client用于发送HTTP请求。Feign默认使用Client.Default但你可以替换为例如ApacheHttpClient、OkHttpClient等
Retryer用于配置重试策略。Feign默认提供了Retryer.Default但你可以自定义重试逻辑
ErrorDecoder用于解码HTTP响应中的错误。Feign默认提供了ErrorDecoder.Default但你可以自定义错误解码器来处理特定的错误情况
Options用于配置Feign的底层请求选项如连接超时、读取超时等
SetterFactory用于创建Feign请求模板的setter方法。这通常不需要自定义但在某些高级场景中可能有用
InvocationHandlerFactory用于创建Feign的InvocationHandler。这也不常需要自定义但在某些特定情况下可能有用例如我要对xxx的client定义一个拦截器每次发送请求的时候都往header里加点东西那么我们可以在Abc这个类中这样写
Configuration
public class Abc{// 这个RequestInterceptor 类会被feign识别并配置因为实现了RequestInterceptor 接口// 而这个接口恰好是上述列表中的接口所以这个配置自动生效Beanpublic RequestInterceptor headerInterceptor() {return new HeaderInterceptor();}public static class HeaderInterceptor implements RequestInterceptor {Overridepublic void apply(RequestTemplate template) {template.header(key1, value1);}}
}好了本文就到这里重点就是配置类中都有哪些Bean类型也就是本文上述那个配置信息列表至于这些接口怎么样网上多的是本文只是为了拟补FeignClient文档中的不足所以我们不知道有哪些Bean类型