私は、Eurekaを介して外部Webサービスを呼び出すためにFeignを使用するSpring起動アプリケーションを用意しています。私は、Feureインターフェイスの虚偽の実装を使用してアプリケーションを実行できるようにしたいので、Eurekaや外部Webサービスを実行する必要はなく、アプリケーションをローカルで実行できます。私はこれを可能にする実行コンフィギュレーションを定義することを想像していましたが、これを動作させるのに苦労しています。問題は、Springの「魔法」が、私が試したことに関係なく、FeignインターフェースのためのBeanを定義しているということです。環境に基づいて異なるFeignクライアント実装を定義する
装うインタフェース
@FeignClient(name = "http://foo-service")
public interface FooResource {
@RequestMapping(value = "/doSomething", method = GET)
String getResponse();
}
サービス
public class MyService {
private FooResource fooResource;
...
public void getFoo() {
String response = this.fooResource.getResponse();
...
}
}
私は春のプロファイルは、「ローカル」であった場合は、条件付きでBeanを登録し、設定クラスを追加してみましたが、それは呼ばれませんでしたそのSpringプロファイルでアプリケーションを実行したとき:
時点私のサービスの実行、MyService
でFooResource
メンバ変数は、IntelliJのにかかるタイプ
HardCodedTarget(タイプ= FoorResource、URL = http://foo-service)
です。これはSpring Cloud Netflixフレームワークによって自動的に生成されるタイプなので、リモートサービスと実際に通信しようとします。
構成設定に応じて条件付きでFeignインターフェイスの実装を上書きする方法はありますか?