私は、いずれかのソースからデータを取得するスプリングブートWebサービスを作成するはずです&残りのapiは(/ fetchData/{src})srcはパス変数です&ソースの名前ですデータベース)例えばcasandra、mongodbまたは他のnosql ..それに基づいて、そのデータベースとの接続を確立するためにBeanを初期化する必要があります。このような場合に@Conditional Beanを使用することができます。その問題は、プロパティファイル値&に基づく@条件付きBeanチェック条件ここでは、残りのAPIのパスパラメータに基づいて条件を適用する必要があります。したがって、@ Conditionや他のデザインパターンを工場のように使うべきですか?春のブート時に残りのAPIのパスパラメータに基づいて@Conditional Beanを実装できますか?
1
A
答えて
2
@Conditional
は、起動時に評価されるため、パスパラメータ値は実行時にのみ認識されるため、使用できません。
解決策はたくさんあります。シンプルな工場やチェーンを使うことができます。
私はいくつかの時間に使用される別の例:インターフェース
public interface MyDataSource {
SomeOutputData query(Data someDataIn);
boolean supports(String pathParam);
}
すべての実装(カサンドラ、MongoDBは、など)を作成を作成し、サービスにこれらのリストを注入
を
@Autowired
private List<MyDataSource> dataSources;
次に、次のような適切なデータソースを選択できます。
dataSources.stream()
.filter(dataSource -> dataSource.doesSupport(pathParam)
.findFirst()
.orElseThrow(() -> new IllegalArgumentException("No datasource"))
.query(dataIn);
関連する問題
- 1. 残りのAPIに基づいてアクションを実装するにはどうすればいいですか
- 2. は、私は春のブートを使用しています春の残り
- 3. 春のブート基本
- 4. 春・ブート・アクチュエータ・ドキュメントは、ばねブート残り-docsの出力
- 5. wso2esb残りのAPIの実装
- 6. 春のブートでのAPIゲートウェイ
- 7. Azure残りのapiブロックを実装しますか?
- 8. 春のアノテーションに基づくランタイムウィーバーのエラーは、動的なWebプロジェクトに基づいています。
- 9. 春の起動時にbeanを定義できません
- 10. Math.randomの実装はどのアルゴリズムに基づいていますか?
- 11. 春のブートでjmsキューを実装する方法
- 12. djangoの残りのapiで角度認証を実装する
- 13. アプリの購入に基づいてサブスクリプションを実装する
- 14. SQLクエリ与えられた条件に基づいて、残りの実行中の残高を計算する
- 15. API Akkaクラスターに基づくマイクロサービスのゲートウェイパターン実装
- 16. Javaマップの実装がHashCodeに基づいていない
- 17. 春のブート1.3.3 @EnableResourceServerとEnableOAuth2Sso @同時に
- 18. 春のブートDaoテスト
- 19. std :: conditionalを使用してテンプレートパラメータに基づいてメンバタイプを選択する
- 20. ウィンドウサイズに基づいてjavascriptを実行できますか?
- 21. オブジェクトクラスに基づくハッシュコードの実装
- 22. 残りのapiからrundeckジョブを実行しています
- 23. 春のブート時に各テストクラスの後でBeanを破壊して再作成する方法
- 24. 春のブート基本認証の春のブートセッションが可能
- 25. ジェネリックスがインターフェイスに基づいているインターフェイスを実装する
- 26. サービスの可用性に基づく春のオートワイヤリング
- 27. Spring4のキーに基づいてBeanを取得するAnnotationbased
- 28. コール春ブーツで私のサーバーから別の残りのAPI
- 29. 注釈のない実装の残り
- 30. Beanを作成する際のエラー - 春のブート
ご意見ありがとうございます。私も@conditionalは開始時に評価され、path変数は実行時にのみ認識されるので、私はそれを使うことはできません。貴重なご意見をいただきありがとうございます。 –