Guice Dependency Injection over方法,第一步

时间:2013-05-15 12:03:34

标签: dependency-injection guice

我使用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 {

但如果我运行它,它永远不会注入依赖。例如:

  1. 我创建主应用程序:QSManager manager = new QSManager(params);
  2. 我尝试注入:manager.test()其中test是System.out.println(pdfManager);返回null
  3. 有人能指出我正确的方向或向我显示错误吗?谢谢!

1 个答案:

答案 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();