2009-04-28 19 views
1

私は抽象クラスFooを持っています。この抽象クラスは、非抽象メソッドBarを持ちます。私はFooを拡張し、独自のコンストラクタを持つクラスBazを持っています。デフォルトでは、Springは起動時にBazクラスをインスタンス化するとき、値を親クラスのメソッドBarに渡す前にBazコンストラクタを呼び出します。プロパティを設定する前にSpringコールオブジェクトコンストラクタ

Bazのコンストラクタの前にBarが呼び出されるように、この動作をオーバーライドする方法はありますか?あるいは、もし私がSpringのデフォルト動作をどうにか拡張する必要があれば、これを行う最善の方法は何でしょうか?

答えて

3

コンストラクタ内のロジックをafterPropertiesSetメソッドに置き換えることを検討してください。 InitializingBean interfaceを参照してください。

2

Javaがうまく動作するように設計されているように、私が言うことはあなたのように聞こえます。そのインスタンスのメソッドを呼び出す前に、(コンストラクタを介して)オブジェクトを完全に構築する必要があります。

私のスプリングコードはあまり良くないので、コンストラクタを使用することはめったにありません。 @PostConstructアノテーションを使用していくつかのメソッドを使用し始めました。

関連する問題