Feignは宣言型のWebサービスクライアントです。その目的は、Webサービスの呼び出しを簡単にすることです。FeignはHTTPリクエストテンプレートを提供します。シンプルなインターフェースを記述し、アノテーションを挿入することで、HTTPリクエストのパラメーター、フォーマット、アドレス、その他の情報を定義できます。これは、RestTemplateよりも便利です。
Feignには次の特徴があります。
FeignアノテーションとJAX-RSアノテーションを含むプラガブルアノテーションのサポート、
プラガブルHTTPエンコーダーとデコーダーの
サポート、Hystrixとそのフォールバックの
サポート、リボン負荷分散の
サポート、HTTP要求と応答の圧縮のサポート。
これは、springmvcモデルのControllerレイヤーのRequestMappingマッピングに少し似ています。このモデルは私たちがとても気に入っているものです。Feignは@FeignClientを使用してサービスをマップします
以前の記事のデモコードにいくつかの変更を加えることができます。
まず、プロデューサーサービスでプロデューサーのインターフェイスと実装クラスを作成します。
次に、コンシューマーサービスコンシューマーのpom.xmlにfeignの依存関係構成を追加します
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
コンシューマーサービスを作成するために、
まずインターフェースに追加された@FeignClientアノテーションを見てみましょう。このアノテーションは、それが現在Feignクライアントであることを識別し、value属性は、対応するサービスの名前です。これは、サービスを呼び出す必要があるインターフェースです。そこで、プロデューサーのサービス名を追加しました。
コンシューマーコントローラーで呼び出しを行います。
最後に、偽の呼び出しアノテーションをコンシューマースタートアップクラスに追加します。
起動後、次の図を参照してください。