private Service service;
@Inject
public ClassName(final Service service) {
this.service = service;
}
@Inject
private Service service;
この 2 種類の注射の違いを教えてください。
private Service service;
@Inject
public ClassName(final Service service) {
this.service = service;
}
@Inject
private Service service;
この 2 種類の注射の違いを教えてください。
最初のものは、インジェクターがコンストラクターを呼び出し、適切な Service オブジェクトを提供することを示しています。コンストラクタで何をするかはあなた次第です。
2番目のものは、メンバー変数を適切に設定すると述べています(つまり、デフォルトのコンストラクターを使用でき、それでも魔法のように変数を設定します)。
一般に、依存関係を明示的に保つため、最初の方法を好みますが、方法 2 を使用する正当な理由があると確信しています。
私は RoboGuice を使用したことはありませんが、通常の Guice と同じ一般原則を持っていると思います。関連する @Inject ドキュメントは、その wiki にあります: http://code.google.com/p/google-guice/wiki /注射