有没有办法在使用 SpringCloud OpenFeign 时为每个 Feign 实例创建不同的客户端?

问题描述

我们可以在使用 OpenFeign 时为 Feign 实例指定客户端,如下所示:

        his.fooClient = Feign.builder()
                .client(clientA)
                .target(FooClient.class,"https://PROD-SVC");

        this.adminClient = Feign.builder()
                .client(clientB)
                .target(FooClient.class,"https://PROD-SVC");

但是如果使用SpringCloud OpenFeign似乎没有办法做到这一点,所有Feign实例将共享一个客户端,因为我们无法根据文档为Feign实例配置客户端:{ {3}}。

那么如何在使用 SpringCloud OpenFeign 的同时实现这一目标?

解决方法

您必须手动创建 class Person public static function boot() { parent::boot(); static::deleting(function($model) { // before delete() method call this foreach($model->files as $file){ $file->delete(); } }); } } 实例,与使用 Feign 的方式相同。

好消息,您可以将部分 OpenFeign 配置与 SpringCloud OpenFeign 一起使用

也可以将 @Import({FeignClientsConfiguration.class}) 与这种方法一起使用。无法将 @RefreshScope 与由 @RefreshScope 注释创建的客户端一起使用。

对于简单的情况,可以使用 @FeignClient。但是它配置FeignClientBuilder的能力很差。

这些 bean 将从 Feign 导入:
FeignClientsConfigurationDecoderEncoderContract

FeignLoggerFactory 用于使用 Spring REST 注解,如 Contract

@PostMapping