Dependency injection 使用Guice 3.0播放2.1-在控制器类之外无法访问
我试图学习guice如何使用Play2.1框架。我有一项服务,我需要在服务包之外访问该服务。我已将下面的文件放在全局文件中Dependency injection 使用Guice 3.0播放2.1-在控制器类之外无法访问,dependency-injection,playframework-2.0,guice,Dependency Injection,Playframework 2.0,Guice,我试图学习guice如何使用Play2.1框架。我有一项服务,我需要在服务包之外访问该服务。我已将下面的文件放在全局文件中 protected Injector configure() { injector = Guice.createInjector(new AbstractModule() { @Override protected void configure() { bind(MyServic
protected Injector configure() {
injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(MyService.class).to(MyServiceImpl.class).in(Singleton.class);
}
});
return injector;
}
@Override
public <A> A getControllerInstance(Class<A> clazz) throws Exception {
return injector.getInstance(clazz);
}
但在控制器之外的其他地方,同一对象似乎为空。例如,我有一个核心模块,负责与服务对话。控制器类将作业分发给核心模块。我需要能够在核心模块类中获得MyService obj
伙计们,我错过了什么
谢谢
Karthik我已经想出了一个办法来做到这一点 在我的配置方法中,我必须使用这个
protected Injector configure() {
injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
requestStaticInjection(TheClassThatNeedsMyService.class);
}
});
return injector;
}
在我需要服务的课堂上,我只能做
@Inject MyService serviceObj;
仅供参考,这是我的服务类的外观
@ImplementedBy(MyServiceImpl.class)
public interface MyService{
...
}
@Singleton
public class MyServiceImpl implements MyService{
...
}
现在,我可以在我的应用程序中随时访问我的服务对象。希望它能帮助别人
谢谢
Karthik我已经想出了一个办法来做到这一点 在我的配置方法中,我必须使用这个
protected Injector configure() {
injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
requestStaticInjection(TheClassThatNeedsMyService.class);
}
});
return injector;
}
在我需要服务的课堂上,我只能做
@Inject MyService serviceObj;
仅供参考,这是我的服务类的外观
@ImplementedBy(MyServiceImpl.class)
public interface MyService{
...
}
@Singleton
public class MyServiceImpl implements MyService{
...
}
现在,我可以在我的应用程序中随时访问我的服务对象。希望它能帮助别人
谢谢
Karthik作为静态注入的替代方案,请参见此处的play guice示例:
Guice可以以传统方式与Play一起使用。作为静态注入的替代方案,请参见此处的Play Guice示例:
Guice可以在Play中以常规方式使用。这在Play 2.4中似乎不再有效。你知道这个功能出了什么问题吗?我一直在尝试让依赖注入在2.4.x中的控制器之外工作。在游戏2.4中,这似乎不再起作用。你知道这个功能出了什么问题吗?我一直在尝试让依赖注入在2.4.x中的控制器之外工作