問題タブ [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.
java - テスト用に @Configuration Bean を使用して @FeignClient をオーバーライドする
テスト用にモック化されたバージョンを含む Bean を@FeignClient
作成するだけで、アノテーションを介して作成された Bean をオーバーライドすることは可能ですか?@Configuration
私はすでにそれを試しましたが、@FeignClient
Bean が最後に作成されたようです (またはそう思う)。私のテストでは、モックされたバージョンではなく、実際のバージョンが常に注入されます。@Component
同じ構成ファイルで、実際の名前を使用するだけで同じようにモックされた(を除く) 注釈なしで作成された別の Bean があり、完全に機能します。
私は@MockBean
それをモックするために使用しようとしましたが、それは機能しますが、プロジェクトにはいくつかの癖があり、別のSpringコンテキストを作成するとテストが中断されます。
ありがとう。
編集。@Configuration
実際、テストをデバッグしたところ、Feign クライアントと同じ名前を使用すると、デバッガーがBean で停止してモック バージョンを作成することさえできないことに気付きました。名前を別の名前に変更しても機能しますが、同じタイプの別の Bean が新しい名前で作成されるだけです。ここで不足している構成はありますか?
EDIT 2.これはサンプルコードです。私が持っているこれを実行すると、それBarService
はモックされたバージョンですFooService
が、実際のものです。
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 時間以上費やしましたが、役に立ちませんでした。
助けと指導をお願いします
ブラケットがありません