0
A
答えて
0
はい安全です。コンストラクタ・インジェクションで
、春には(このケースでは、あなたの依存関係フィールドにfinal
修飾子を追加できることに注意してください)適切な引数でコンストラクタを呼び出します。
セッター・インジェクションでサンプル
private final SomeBean dependency;
public MyObject(SomeBean dependency){
this.dependency = dependency;
doInit();
}
private void doInit(){
//doStuff to initialize your bean
}
、春はデフォルトコンストラクタ(すなわち、引数なしのコンストラクタ)を使用してBeanをインスタンス化します。 次のステップでは、すべての@Autowired依存関係が設定されるように、必要なすべてのsetterを呼び出します。 最後に、Springは@PostConstructアノテーションを持つメソッドを呼び出します。セッター・インジェクションを使用して
サンプル
@Autowired
private SomeBean dependency;
@PostConstruct
private void doInit(){
//doStuff to initialize your bean
}
は一つの利点があります(それは部分的に豆を構築とセッターを呼び出すことができますので)あなたのBean間の循環依存関係の場合には、春には、それらを解決することができるようになります。 が部分的に豆はできません構築するという理由だけで、一方
(あなたのセッターは本当のセッターで、フィールドに値を割り当てる以上のものをすれば、それは大丈夫です)、春には、コンストラクタ・インジェクションを使用しているとき、円形の依存関係を解決するために失敗しましたコンストラクターの引数としてよく使用されます。
0
私は少し遅れて相手にだけど、ここでは任意のオブジェクト指向言語setter/field injection is evilでは2ポイントで私の2セント、
- です。
- 設計エラーであるため、循環依存インジェクションのために高速で失敗する方が良いです。そして、それらに気付かないと後者に悪影響を与える可能性があります。
関連する問題
- 1. シャドウフィールドのスプリングセッター注入
- 2. スプリングスターター検証とバリデーター注入
- 3. Spring @注入フィールド間の注入フィールド検証@
- 4. なぜセッター注入で春の依存性注入が保証されないのですか?
- 5. 注文したストリームのFlink保証
- 6. Sparking Streamingでの注文保証
- 7. Amazon Kinesisと保証された注文
- 8. 似たような豆のセットの注入を保証するには?
- 9. 式内のSQL注入保護
- 10. 注釈注入とXML注入
- 11. 保存(挿入)時のHibernate検証
- 12. カフカストリームの集計には発注保証がありますか?
- 13. (auto i:unordered_map)は毎回同じ注文を保証しますか?
- 14. MFCreateAggregateSourceは注文に関する保証はありますか?
- 15. 投稿後の注文保証付きメッセージキューイング
- 16. readdir()は注文を保証しますか?
- 17. フィールド注入検査VSコンストラクタ注入
- 18. 依存注入をコンティニュインル注入する
- 19. 注射用クラスに注入
- 20. Spring mvc注釈検証のカスタム注釈
- 21. PHP入力検証 - 注意すべきことは?
- 22. Anugalur2 - 要求ヘッダーに認証トークンを注入する
- 23. ConstraintValidatorで注入するサービス[ビーン検証 - JSR 303]春
- 24. 多くのJS dom注入/操作後のDOM検証
- 25. 依存性注入を使用した依存性注入器の注入
- 26. 依存性注入 - Unityコンストラクタ注入が機能しない、ゲッタセッタ注入のみ
- 27. 保存と発注
- 28. 注入されたユーザーオプションに基づいてデータ保護を注入するConfigureServicesのIOptions <>
- 29. SQL注入保護を心配する場合
- 30. サードパーティのiframeでスクリプトの注入と実行を保護する
両方の注射によって保証されます。しかし、コンストラクタの注入には、循環依存性に関するいくつかの制限があります。 –