Java Play Framework 2.4-注入的字段始终为空

Java Play Framework 2.4-注入的字段始终为空,java,playframework,dependency-injection,guice,playframework-2.4,Java,Playframework,Dependency Injection,Guice,Playframework 2.4,我有一个简单的注入模块: public class InjectionModule extends AbstractModule { @Override protected void configure() { bind(SomeModel.class); bind(SomeData.class); } } 它在my application.conf中启用 play { modules { enabled += "com.e

我有一个简单的注入模块:

public class InjectionModule extends AbstractModule {

    @Override
    protected void configure() {
        bind(SomeModel.class);
        bind(SomeData.class);
    }
}
它在my application.conf中启用

play {
  modules {
    enabled += "com.example.InjectionModule"
  }
}
在我的控制器中,我想创建一个新模型,我这样做:

public Promise<Result> getPage() {
    return handleRequest(() -> Play.application().injector().instanceOf(SomeModel.class));
}
但是
数据
始终为空

请注意,如果我只使用
newsomedata()
,它就可以工作

更新


我将其更改为使用构造函数注入,并且一切正常,为什么我的字段注入不起作用?

首先,注入器创建一些对象,并且仅在将值注入对象之后。因此,注入的属性在构造函数中始终为null

如果希望在构造函数中注入值,那么使用构造函数注入的方法是正确的

最好的方法是不要使用构造函数,对属性使用注入,并使用诸如“build”之类的方法(不能从构造函数调用此方法)。您可以在除构造函数之外的任何方法中访问注入的变量

@Inject
private SomeData data;

void process() {
    // do something
    // but data is always null
}