Ho un semplice modulo di iniezione:Giochi Framework 2.4 - iniettato campi sono sempre nullo
public class InjectionModule extends AbstractModule {
@Override
protected void configure() {
bind(SomeModel.class);
bind(SomeData.class);
}
}
è abilitato nel mio application.conf
play {
modules {
enabled += "com.example.InjectionModule"
}
}
Nel mio controller Voglio creare un nuovo il modello, e lo faccio in questo modo:
public Promise<Result> getPage() {
return handleRequest(() -> Play.application().injector().instanceOf(SomeModel.class));
}
handleRequest()
si occupa solo con la creazione la promessa e chiamando process()
sul modello.
Nella mia classe SomeModel
tento di iniettare alcune dipendenze, ma sono sempre nullo, quello che sto facendo è:
@Inject
private SomeData data;
void process() {
// do something
// but data is always null
}
ma data
è sempre nullo.
Nota che se utilizzo solo new SomeData()
, allora funziona.
Aggiornamento
ho cambiato di utilizzare l'iniezione costruttore e tutto funziona bene, perché l'iniezione di campo non funziona?