_Von an.perez83 am 15. April 2010 06:54:44_
Hallo allerseits,
laut JavaDoc von com.google.inject.Injector sollen alle Injektoren ein Binding haben
von Injector.class zu sich selbst. Trotzdem scheint der untergeordnete Injektor seinen Wurzelinjektor zu injizieren
eher als sich selbst. Ich habe einen kurzen Beispielcode angehängt.
Ich vermute, dass entweder die Dokumentation oder die Implementierung fehlerhaft ist.
Beifall
Anhang: Inhalt
_ child_injecting_parent.txt _
_Ursprüngliches Problem: http://code.google.com/p/google-guice/issues/detail?id=472_
_Von an.perez83 am 15. April 2010 04:04:34_
Okay, ich habe eine Problemumgehung gefunden: Man muss die Klasse binden, in der der untergeordnete Injektor sein wird
explizit in die Bindungen des Kindinjektors gespritzt. Für mein vorheriges Beispiel würde dies so etwas bedeuten wie
this: bind(A.class);
Trotzdem halte ich das aktuelle Verhalten für einen Bug.
_Aus sberlin am 15. April 2010 05:53:51_
Dies liegt daran, dass, wenn die Bindung nicht im Modul des untergeordneten Injektors vorhanden ist, Guice
erstellt es als "Just-in-Time"-Bindung, und JIT-Bindungen werden in erstellt
Elternmodule (aus verschiedenen Gründen).
_Aus sberlin am 25. April 2010 15:17:14_
(Für diese Änderung wurde kein Kommentar eingegeben.)
Status: Ungültig
Hilfreichster Kommentar
_Von an.perez83 am 15. April 2010 04:04:34_
Okay, ich habe eine Problemumgehung gefunden: Man muss die Klasse binden, in der der untergeordnete Injektor sein wird
explizit in die Bindungen des Kindinjektors gespritzt. Für mein vorheriges Beispiel würde dies so etwas bedeuten wie
this: bind(A.class);
Trotzdem halte ich das aktuelle Verhalten für einen Bug.