【发布时间】:2015-09-14 23:54:39
【问题描述】:
我有一个简单的注入模块:
public class InjectionModule extends AbstractModule {
@Override
protected void configure() {
bind(SomeModel.class);
bind(SomeData.class);
}
}
它在我的 application.conf 中启用
play {
modules {
enabled += "com.example.InjectionModule"
}
}
在我的控制器中,我想创建一个新模型,我这样做是这样的:
public Promise<Result> getPage() {
return handleRequest(() -> Play.application().injector().instanceOf(SomeModel.class));
}
handleRequest() 只处理创建承诺并在模型上调用process()。
在我的SomeModel 类中,我尝试注入一些依赖项,但它们始终为空,我正在做的是:
@Inject
private SomeData data;
void process() {
// do something
// but data is always null
}
但data 始终为空。
请注意,如果我只使用new SomeData(),那么它可以工作。
更新
我改成使用构造函数注入,一切正常,为什么我的字段注入不起作用?
【问题讨论】:
标签: java playframework dependency-injection guice playframework-2.4