我注意到你正在使用Java.以下是我如何使用它来注入控制器.
首先,我创建了以下4个类:
myController的:
package controllers;
import play.mvc.*;
import javax.inject.Inject;
public class MyController extends Controller {
@Inject
private MyInterface myInterface;
public Result someActionMethodThatUsesMyInterface(){
return ok(myInterface.foo());
}
}
MyInterface的:
package models;
public interface MyInterface {
String foo();
}
MyImplementation2Inject:
package models;
public class MyImplementation2Inject implements MyInterface {
public String foo() {
return "Hi mom!";
}
}
MyComponentModule:
package modules;
import com.google.inject.AbstractModule;
import models.MyInterface;
import models.MyImplementation2Inject;
public class ComponentModule extends AbstractModule {
@Override
protected void configure() {
bind(MyInterface.class).
to(MyImplementation2Inject.class);
}
}
现在最后一部分,我花了很长时间才弄清楚,是注册模块.您可以通过将以下行添加到application.conf文件的末尾来执行此操作,该文件位于conf目录中:
play.modules.enabled += "modules.MyComponentModule"
我希望这对你有所帮助. 🙂