私たちのアプリはマルチテナントをサポートする必要があります。ボード化された顧客のそれぞれは、コアプラットフォームレベル(共通コード/定義)で定義された1つ以上のBeanまたはBeanのプロパティをオーバーライドする可能性があります。私はこれを処理する最善の方法は何か不思議です。子コンテキストで親コンテキストで定義されたBeanをオーバーライドします
21
A
答えて
32
Springでは、同じBean名を複数回再定義することができ、指定された名前に対して処理された最後のBean定義を勝つものとして扱います。たとえば、コアBeanを定義するXMLファイルを作成し、それをクライアント固有のXMLファイルにインポートすると、それらのBeanのいくつかが再定義されます。しかし、「このBean定義はオーバーライドです」とは特に言えないため、やや脆弱です。
これを処理する最もクリーンな方法はnew @Bean
-syntax introduced in Spring 3です。 BeanをXMLとして定義するのではなく、Javaで定義します。したがって、コアBeanは1つの@Bean
という名前のクラスに定義され、クライアントのconfigsはそのクラスをサブクラス化し、適切なBeanをオーバーライドします。これにより、標準のjava @Override
アノテーションを使用して、指定されたBean定義がオーバーライドされていることを明示的に示すことができます。
関連する問題
- 1. vba "アプリケーション定義またはオブジェクト定義のエラー"と "コンテキストがコンテキストで定義されていません"
- 2. コアデータ:親コンテキストの変更が子コンテキストにマージされない
- 3. 春の親コンテキストと子コンテキストの違いは何ですか?
- 4. コアデータ複数レベル親 - 子コンテキスト
- 5. Spring:親コンテキストからBeanをautowireできません
- 6. NSPrivateQueueConcurrencyTypeを使用する子コンテキストNSPrivateQueueConcurrencyType親コンテキストを使用する
- 7. アプリケーションのコンテキストで削除されたBeanをプロジェクトに戻す
- 8. Wagtailブロック:オーバーライドされたget_contextでコンテキストと要求にアクセスする
- 9. Spring Security + MVC:コンテキスト定義とBeanスコープに関する質問
- 10. エンティティ・フレームワークは子コンテキストのdbsetをオーバーライドします
- 11. ルートハンドラ内で必要なファイルに定義されたインスタンス変数をコンテキストのコンテキストにテンプレートのコンテキストとして取り込む方法はありますか?
- 12. コアデータ親子コンテキスト実装の混乱
- 13. CoreData親子コンテキスト競合管理
- 14. Springブート動的コンテキスト作成(親/子)
- 15. Spring:親Beanをオーバーライド
- 16. Manifestファイルで定義されたAndroid Receiverのコンテキストは何ですか?
- 17. メソッド定義に@implementationでないコンテキスト:エラー
- 18. Spring Bean定義でdefault-lazy-init = trueをオーバーライドします
- 19. アプリケーションコンテキストで定義された単一のBeanをオーバーライドする方法
- 20. +演算子をオーバーロードして、チェックされたコンテキストまたはチェックされていないコンテキストで呼び出されるようにします。
- 21. Handlebars.js - 各ループ、if文、子オブジェクト内で親コンテキストを取得する
- 22. コンテキストでBean定義を削除して、実行時にSpringタスクスケジューラを停止すると、動作しません。
- 23. SpringJUnit4ClassRunnerは、Java設定で定義されたコンテキストでmyが表示されません。
- 24. ダストonLoadコンテキストは常に定義されていません
- 25. Springコンテキストのテストでスケジュールされたタスクをオーバーライド/ターンオフする方法
- 26. XML定義をオーバーライドするBeanアノテーション - Spring
- 27. DDD:限定されたコンテキスト - 別の限定されたコンテキストの懸念を参照するドメインエンティティ
- 28. SpringコンテキストでのデフォルトのOAuth2RestTemplateのオーバーライド
- 29. XCode 4.2ストーリービルダの「コンテキストの定義」と「コンテキストの提供」の意味
- 30. 'Personal'は指定されたコンテキストでは無効な型です
子ctxで同じID /名前のBeanを再定義できますか? –
このページを見るhttp://stackoverflow.com/tags/spring/topusers彼は彼が何を話しているのか分かっていると思うだろう –
ありがとう。私は彼のポストの正確さに疑問を呈していない。私はdevのリソースから、これが新しいバージョンのspring(つまり2.5.x以降)では不可能であると言われているので、その特定のステートメントに対する再保証をしたかったのです。彼は、同じ名前の子コンテキストでBean(親コンテキストで定義されていた)を再定義しようとしましたが、起動中にエラーを受け取りました。 –