問題タブ [feign]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
4261 参照

java - テスト用に @Configuration Bean を使用して @FeignClient をオーバーライドする

テスト用にモック化されたバージョンを含む Bean を@FeignClient作成するだけで、アノテーションを介して作成された Bean をオーバーライドすることは可能ですか?@Configuration

私はすでにそれを試しましたが、@FeignClientBean が最後に作成されたようです (またはそう思う)。私のテストでは、モックされたバージョンではなく、実際のバージョンが常に注入されます。@Component同じ構成ファイルで、実際の名前を使用するだけで同じようにモックされた(を除く) 注釈なしで作成された別の Bean があり、完全に機能します。

私は@MockBeanそれをモックするために使用しようとしましたが、それは機能しますが、プロジェクトにはいくつかの癖があり、別のSpringコンテキストを作成するとテストが中断されます。

ありがとう。

編集。@Configuration実際、テストをデバッグしたところ、Feign クライアントと同じ名前を使用すると、デバッガーがBean で停止してモック バージョンを作成することさえできないことに気付きました。名前を別の名前に変更しても機能しますが、同じタイプの別の Bean が新しい名前で作成されるだけです。ここで不足している構成はありますか?

EDIT 2.これはサンプルコードです。私が持っているこれを実行すると、それBarServiceはモックされたバージョンですFooServiceが、実際のものです。

0 投票する
1 に答える
3622 参照

java - カスタム偽クライアントを Spring アプリケーションに注入する

私は現在、Spring と Feign の両方を把握しようとしています。要点をまっすぐに: 私はこのプロジェクトで @FeignClient を変更するのに苦労しています: Walery に よる Feign Hello World の代わりに

ウィキデータクライアント

ここにあるものと同様の @Autowired 表記を使用します: Section called : Creation Feign Clients Manually

これの目的は、後でカスタム デコーダーとエンコーダーを挿入することです。私はしばらくそれを試してきましたが、私が達成できたのはすべてを台無しにすることだけでした。

あちこちからいくつかの手がかりを集め、構成クラスを作成するところまでたどり着きました。

FeignConfig

修正済み

ウィキデータクライアント

わずかにインターフェース

代わりに前述のクラスを使用しようとしました

ウィキデータランナー

私が得たのは、さまざまな種類の Bean エラーだけでした

2017-07-19 08:02:29.056 ERROR 2018 --- スレッド「メイン」での例外 org.springframework.beans.factory.UnsatisfiedDependencyException: ファイル [/home/mibi/IdeaProjects/ FUFEign/feign-helloworld/target/classes/codes/walery/research/feign/wikidata/WikidataRunner.class]: タイプ [codes.walery.research.feign.wikidata.WikidataClient] のインデックス 0 を持つコンストラクター引数によって表現された満たされていない依存関係: : タイプ [codes.walery.research.feign.wikidata.WikidataClient] の適格な Bean が依存関係で見つかりませんでした: この依存関係のオートワイヤー候補として適格な Bean が少なくとも 1 つ必要です。依存関係の注釈: {}; ネストされた例外は org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualing bean of type [codes.walery.research.feign. wikidata.WikidataClient] 依存関係が見つかりました: この依存関係のオートワイヤー候補として適格な少なくとも 1 つの Bean が必要です。依存関係の注釈: {} [
この依存関係のオートワイヤー候補として適格な少なくとも 1 つの Bean が必要です。依存関係の注釈: {} at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) at org. springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1326) ~[spring-beans-4.2.1.RELEASE.jar:4.2.1.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory $1.getObject(AbstractBeanFactory.java:305) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) at org. コード.walery.research.feign.FeignHelloworldApplication.main(FeignHelloworldApplication.java:12) で springframework.boot.SpringApplication.run(SpringApplication.java:969)ファイル [/home/mibi/IdeaProjects/FUFEign/feign-helloworld/target/classes/codes/walery/research/feign/wikidata/WikidataRunner.class] で定義された名前 'wikidataRunner': インデックス 0 のコンストラクター引数で表現された満たされていない依存関係タイプ [codes.walery.research.feign.wikidata.WikidataClient]: : タイプ [codes.walery.research.feign.wikidata.WikidataClient] の適格な Bean が依存関係で見つかりませんでした: このための autowire 候補として適格な少なくとも 1 つの Bean が期待されます依存。依存関係の注釈: {}; ネストされた例外は org. springframework.beans.factory.NoSuchBeanDefinitionException: タイプ [codes.walery.research.feign.wikidata.WikidataClient] の適格な Bean が依存関係で見つかりません: 少なくとも 1 つの原因が予想されます: org.springframework.beans.factory.NoSuchBeanDefinitionException: 適格な Bean がありませんタイプ [codes.walery.research.feign.wikidata.WikidataClient] の依存関係が見つかりました: この依存関係のオートワイヤー候補として適格な少なくとも 1 つの Bean が必要です。依存関係のアノテーション: {} org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1326) で、この依存関係のオートワイヤー候補としての資格があります。依存性アノテーション: org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory. FeignHelloworldApplication.main(FeignHelloworldApplication.java:12) [classes/:na] 2017-07-19 08:02:29.059 INFO 2018 --- [スレッド 1] scaAnnotationConfigApplicationContext : org.springframework.context.annotation.AnnotationConfigApplicationContext@3d8314f0 を閉じる: 起動日 [Wed Jul 19 08:02:24 CEST 2017]; コンテキスト階層のルート

プロセスは終了コード 1 で終了しました

Spring と Feign の初心者であることを否定しません。事は、私はこれらの両方を必死に理解する必要があるということです. これまでのところ、Feign について調査するのに 10 時間以上費やしましたが、役に立ちませんでした。

助けと指導をお願いします

ブラケットがありません