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. readdir()は注文を保証しますか?
- 2. (auto i:unordered_map)は毎回同じ注文を保証しますか?
- 3. Spring mvc注釈検証のカスタム注釈
- 4. 依存性注入を使用した依存性注入器の注入
- 5. 多くのJS dom注入/操作後のDOM検証
- 6. ConstraintValidatorで注入するサービス[ビーン検証 - JSR 303]春
- 7. PHP入力検証 - 注意すべきことは?
- 8. 保存と発注
- 9. FLV MetaData注入
- 10. HttpServletRequestの注入
- 11. スクエアスペースコード注入
- 12. ユニティコンテナ - レイジー注入
- 13. AngularJs注入エラー
- 14. Roboguice注入システムサービス
- 15. 注入パラメータ
- 16. CDI注入
- 17. SQLの注入
- 18. CDI注入ループ
- 19. Guice注入ヌルポインタ
- 20. dll注入C
- 21. サードパーティのiframeでスクリプトの注入と実行を保護する
- 22. 依存性注入コンテナ(PHP)のインスタンスを保持する方法
- 23. mysql "union select"注入からの保護方法
- 24. SQL注入保護を心配する場合
- 25. スプリング3依存性注入(IOC)注釈
- 26. Magento注文明細書購入注文
- 27. 依存性注入
- 28. 注入URL()Spring Autowired
- 29. 注入するDAO
- 30. Spring3デシリアライズ - シングルトン注入
両方の注射によって保証されます。しかし、コンストラクタの注入には、循環依存性に関するいくつかの制限があります。 –