我使用Java 1.6和guice 3.0,我试图让Dependency Injection工作。 我想从手动依赖注入切换到guice。
Heres我的课我想要使用依赖:
public class QSManager implements IQSManager {
private IPdfManager pdfManager;
@Inject
public void setPdfManager(IPdfManager pdfManager){
this.pdfManager = pdfManager;
}
Heres My Manager Module
public class PdfManagerModule implements Module {
@Override
public void configure(Binder binder) {
binder.bind(IPdfManager.class).to(PdfManager.class).in(Singleton.class);
}
}
我希望的依赖:
@Singleton
public class PdfManager implements IPdfManager {
但如果我运行它,它永远不会注入依赖。例如:
有人能指出我正确的方向或向我显示错误吗?谢谢!
答案 0 :(得分:1)
使用以下命令绑定配置中的接口:
bind(IQSManager.class).to(QSManager.class);
并使用Guice创建QSManager
,而不是使用new
:
Injector injector = Guice.createInjector(new PdfManagerModule());
IQSManager manager = injector.getInstance(IQSManager.class);
manager.test();