@PostConstruct
注釈の使用と、Spring XML設定のinit-method
と同じメソッドの宣言との間に違いはありますか?Spring @PostConstructとinitメソッドの属性の比較
75
A
答えて
114
実際には違いはありませんが、動作する方法には優先順位があります。 @PostConstruct
、init-method
はBeanPostProcessorsです。
@PostConstruct
init-method
は、初期化メソッドを有するSpringの方法であるJSR-250の注釈です。@PostConstruct
メソッドを使用している場合、これは初期化メソッドが呼び出される前に最初に呼び出されます。- BeanがInitializingBeanを実装し、
afterPropertiesSet
をオーバーライドした場合、最初に@PostConstruct
が呼び出され、次にafterPropertiesSet
、次にinit-method
が呼び出されます。
詳細については、Springのreference documentationを確認してください。
18
実際の違いはありません。それはあなたのシステムをどのように構成するのが好きか、それは個人的な選択の問題です。自分自身のコードに@PostConstruct
の注釈を使用することをお勧めします(メソッドが呼び出された後にのみBeanが正しく設定されるため)init-method
Spring以外のライブラリからBeanをインスタンス化するときに(もちろんアノテーションを適用できません!)しかし、私は完全にそれをやりたいと思う人々を理解することができます。
4
@postconstructはスプリングの一部ではありません。これはjavaxパッケージの一部です。どちらも同じです。 initメソッドを使用してxmlファイルに追加する必要があります。@postconstructを使用する場合は、xmlでの追加は不要です。下記の記事をご覧ください。
+0
記事の関連部分を表示できますか? – segarci
関連する問題
- 1. 属性 - 比較
- 2. 変数と属性を比較する
- 3. メソッドの属性を使用したASP.NET MVCルーティングGETとPOSTの比較
- 4. xmlの属性と属性に混乱があります。値の比較
- 5. GCC関数の属性とキャッシュの比較
- 6. C#のノード名と属性名によるXMLの比較
- 7. 属性の検証他のIteratorの別の属性を比較する
- 8. GWTとSpring MVCとの比較
- 9. JAX-RSとSpring Rest Servicesの比較
- 10. Spring - 単体テストでのinitメソッドのスキップ
- 11. 関数と静的メソッドとの比較
- 12. RichFacesカラム:比較対象の行に属性の値を保存
- 13. frozensetの性能との比較
- 14. QTとDelphiの可能性の比較
- 15. ある配列のオブジェクト属性を別の配列のオブジェクト属性と比較する
- 16. RESTTemplateとspring mvc - セッション属性
- 17. TextViewのフォント属性を比較的変更する
- 18. イベントとオーバーライド可能なメソッドの比較
- 19. fsharpのカスタム比較と等価性
- 20. mysqlの性能比較
- 21. 比較シミュレーション性能
- 22. 現在のModel属性とRails 3のedit.html.erbフォームフィールドエントリを比較します
- 23. Spring Restドキュメントの属性
- 24. Spring 2.5のセッション属性
- 25. DataSourceUtils.getConnectionとDataSource.getConnectionとの比較
- 26. .netメソッドの属性
- 27. loadViewとinitメソッド
- 28. 'str'オブジェクトに属性 '比較'がありません
- 29. 内部クラスの公開メソッドと内部メソッドの比較
- 30. Python for PythonとSpring for Javaとの比較方法
Beanはこれらのメソッドの複数を使用して、初期化の順序に依存している場合、恐ろしく複雑でunmaintainableになるだろう。 –
@Donalまあまあです。この仕組みについての情報を提供していただけでした。 –
重要な違いがあります:アノテーションを処理して@PostConstructを動作させるためにSpringを具体的に設定する必要があります:http://stackoverflow.com/q/3434377/134898 –