ich ein einfaches Injektionsmodul haben:Play-Framework-2.4 - Eingespritzte Felder sind immer null
public class InjectionModule extends AbstractModule {
@Override
protected void configure() {
bind(SomeModel.class);
bind(SomeData.class);
}
}
es ist in meinem application.conf aktiviert
play {
modules {
enabled += "com.example.InjectionModule"
}
}
In meinem Controller ich ein neues erstellen möchten Modell, und ich tue so wie folgt aus:
public Promise<Result> getPage() {
return handleRequest(() -> Play.application().injector().instanceOf(SomeModel.class));
}
handleRequest()
befasst sich nur mit dem Versprechen zu schaffen und fordern process()
auf dem Modell.
In meiner SomeModel
Klasse versuche ich einige Abhängigkeiten zu injizieren, aber sie sind immer null, was ich tue, ist:
@Inject
private SomeData data;
void process() {
// do something
// but data is always null
}
aber data
immer null ist.
Beachten Sie, dass wenn ich nur new SomeData()
verwenden, dann funktioniert es.
aktualisieren
ich es geändert Konstruktor Injektion zu verwenden und es funktioniert gut, warum Injektion mein Feld nicht funktioniert hat?