mam prosty moduł wtrysku:zabaw Framework 2.4 - odlewania pola są zawsze zerowa
public class InjectionModule extends AbstractModule {
@Override
protected void configure() {
bind(SomeModel.class);
bind(SomeData.class);
}
}
jest aktywowany w moim application.conf
play {
modules {
enabled += "com.example.InjectionModule"
}
}
W moim kontroler chcę, aby utworzyć nowy model i zrobić tak jak poniżej:
public Promise<Result> getPage() {
return handleRequest(() -> Play.application().injector().instanceOf(SomeModel.class));
}
handleRequest()
właśnie zajmuje się tworzeniem obietnicę i powołanie process()
w modelu.
W moim SomeModel
klasy I próbować wprowadzić pewne zależności, ale są one zawsze null, co robię jest:
@Inject
private SomeData data;
void process() {
// do something
// but data is always null
}
ale data
zawsze ma wartość null.
Należy pamiętać, że jeśli po prostu używam new SomeData()
, to działa.
Aktualizacja
Zmieniłem go użyć konstruktora wtrysku i wszystko działa dobrze, to dlaczego nie moja dziedzina wtrysku działa?