2012-04-05 15 views
0

こんにちは:Guiceが必要なパラメータでクラスを「水和」した直後に操作を実行したいと思います。これを行う慣用方法は何ですか? @after_running_constructorアノテーションがありますか?ソートの何か、 "post-guice"イニシャライザメソッドにタグを付けることができますか?guiceはいつ注入しますか?

通常、私はinit()メソッドまたはコンストラクタ自体でこれを行うだけですが、Guiceはクラスのコンストラクタが実行されるまで、必要な情報をクラスに注入していません。

答えて

3

あなたのクラスが必要な "パラメータ"をすべて取得したことを確認する慣習的な方法は、これらのパラメータをコンストラクタに渡すことだけです。 可変性についての簡単な説明を参照してくださいhere

コンストラクタインジェクションの使用に問題がある場合は、インジェクションとパラメータ化の両方が含まれているため、ファクトリパターンまたはAssistedInjectを使用できます。

いくつかのドメインクラスを配線する場合、Guiceの内部構造に気づく必要がある場合、私の推測では、あなたのアプローチを再訪する必要があります。

+0

はいthats true - 内部は重要ではありません。質問を文脈化する方が多くなりました。ありがとう – jayunit100

1

Guiceはライフサイクルメソッドをサポートしていません。同様の質問にhereと尋ねられました。そこにGuice拡張ライブラリGuiceyFruitが勧められましたが、私はそのプロジェクトがそれ以上長く維持されているかどうかはわかりません。

また、Guiceが挿入する順序は、文書hereで定義されています。

私は興味があります、あなたはなぜあなたのクラスのコンストラクタとメソッド注入の両方を行うでしょうか?いくつかのユースケースがあると確信していますが、単にコンストラクタインジェクションだけを使用してinit()問題を解決できます。

関連する問題