Ich arbeite an einer vorhandenen Java-Code-Basis, die Guice für Dependency Injection verwendet. Ich habe eine neue Klasse Foo, die ein Mitglied Feld hat (bar) ich in injizieren wollte wie folgt aus:.inject Objekt ohne Zugriff auf Injektor in Guice
public class Foo {
@Inject
private Bar bar;
}
Allerdings gibt es zwei Dinge:
- Es gibt keinen direkten Zugriff auf die Injektor, wo der Foo verwendet wird.
- Der Client möchte "neu" verwenden, um Foo zu erstellen.
Ist es noch möglich Bar in Foo Objekt zu injizieren, wenn die Kunden tun:
myFoo = new Foo();
Ich bin sehr neu zu DI und Guice, nicht wirklich verstehen, wie Sie Objekte ohne Injektor Aufruf injizieren .createInstance() für seine Klasse oder seine Containerklasse. Es scheint in meinen Tests nicht zu funktionieren.
ich denke, Sie haben Recht, nach mehr Forschung jetzt tun Ich verstehe es ein bisschen besser. – user1783732