@Autowired Beanの大部分をスーパークラスに入れることには欠点がありますが、そのクラスでは使用されずスーパークラスを拡張するサブクラスで使用されますクラス?多くのサブクラスによって拡張されたスーパークラスのSpring Beanをオートワイヤリングする
答えて
いいえ、欠点はありません。
すぐにautowiredコンストラクタを使用しないように注意してください。
コードが醜いように見えます。春の起動には数ミリ秒かかるかもしれません。もちろん、このフィールドにはメモリ(Javaがフィールドに必要なメモリ)が必要です。しかし、これの横に私は何の問題も期待しません。
そして「ノーマル」のランタイムのために(メモリを除く)は影響
があってはならない私はのは、10〜30のフィールドは最大10個の豆を言うことができます言うことができますと思います。フィールドのトーンがある場合は、テストを行い、メモリとパフォーマンスの影響を測定します。
いつも通り、それは依存します。あなたのすべての豆がシングルトンスコープであれば、それは大きな問題ではないはずです。これは「公式のパーティライン」です。
Beanがリクエストスコープ(コントローラクラスなど)の場合、ご存知のよりもはるかに大きな問題があるかもしれません。多分これらの依存関係の一部はシングルトンではないでしょうか?依存関係とその依存関係などを構築しているので、リクエストスコープのコントローラクラスのインスタンス化ごとに簡単に500個のBeanを構築できます。
豆のインスタンス化は春の氷河のように遅いので、問題があります。 @Bozhoがこの返答のコメントを激しく守ると確信しているので、春の枠組みの公式のパーティラインはこの問題を無視するように思われる。これは明らかに、 "Webスコープ"が春2.0の既存のデザインにレトロマウントされており、サポートされている大量のユースケースのために、これは既存の実装の前提に完全に行われました。
解決策はもちろん、あなたの有線依存関係を正規化することです。それらをすべて基底クラスに入れないでください。あなたが怠けている場合は、ApplicationContextでワイヤリングし、必要なときに各サービスのgetBeanへの明示的な呼び出しを使用できます。もちろん、これは春の設計ガイドラインに全く反するものです。
- 1. Java:拡張サブクラスのスーパークラスの保護されたメンバーにアクセスできません
- 2. プロパティに基づいたSpring Beanオートワイヤリング
- 3. Pythonでスーパークラスのメソッドをサブクラスに拡張する方法
- 4. スーパークラスからJava-polymorphismのサブクラスに拡張するときのエラー
- 5. PHPでサブクラス内でスーパークラスのコンストラクタを拡張
- 6. 拡張スーパークラスとClassCastException
- 7. セッションリスナーでBeanをオートワイヤリングする
- 8. 注入されたスーパークラスBeanは、間違ったインスタンス(サブクラスBeanインスタンス)をどのように注入できますか?
- 9. 別のモジュールのBeanをオートワイヤリングする
- 10. サブクラス拡張のオーバーライドされたメソッドへの迅速なディスパッチ
- 11. テスト中に多くのSpring Beanのスコープを変更する
- 12. ios UITextField拡張(サブクラス)
- 13. プロトコルの拡張子とサブクラス
- 14. レスポンスBean拡張マップ
- 15. 多くのスルーアソシエーション拡張がある
- 16. スーパークラス/サブクラスのメソッド
- 17. SpringブートMavenマルチモジュールプロジェクトでBeanのオートワイヤリングが動作しない
- 18. スーパークラスの値にアクセスする方法を拡張する
- 19. 他のライブラリによって拡張された型スクリプト定義のオーバーライド
- 20. 多くのサブクラスで使用されているクラスのデカップリング
- 21. 拡張メソッドによる多型?
- 22. オートワイヤリングによって@bean値を別のクラスに渡すことができませんでした。
- 23. 拡張された拡張エラー
- 24. @Named @SessionScoped Beanを拡張する
- 25. 一般的な抽象クラスを拡張するSpring Beanの作成方法
- 26. Javaのスーパークラスとサブクラス
- 27. Rails 4.2 STI //間違ったキャスト(サブクラスの代わりにスーパークラス)
- 28. Springオートワイヤリングとスレッドセーフ
- 29. Zend ToolによってZend_Controller_Actionが拡張されないクラス
- 30. Javaのスーパークラス、サブクラス、および配列。配列に表示されないサブクラスのメソッドを継承する
*あなたは何が欠点と考えていますか?あなたは欠点を見ますか? –
欠点=余分なメモリの使用、スピードの低下など。現在、実行中のマイナス面はありません。他の誰かが何かに遭遇したのかどうか不思議です。 – woolyninja
私は機能的な欠点はないと言いますが、xメンバーが子クラスにアクセスできるようにxメンバーを保持するクラスが気に入らない場合もあります。 –