0

Guice 3.0 で Java 1.6 を使用しており、依存性注入を機能させようとしています。Manual Dependency Injection から Guice に切り替えたい。

Heres My class wehere 依存関係を使用したい:

public class QSManager implements IQSManager {
    private IPdfManager pdfManager;
    @Inject
    public void setPdfManager(IPdfManager pdfManager){
        this.pdfManager = pdfManager;
    }

そして、ここに私のマネージャーモジュールがあります

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を返す

誰かが私を正しい方向に向けたり、エラーを表示したりできますか? ありがとうございました!

4

1 に答える 1

1

構成でそのインターフェースを次のようにバインドします。

bind(IQSManager.class).to(QSManager.class);

QSManagerを使用する代わりにGuice を使用して作成しますnew

Injector injector = Guice.createInjector(new PdfManagerModule());
IQSManager manager = injector.getInstance(IQSManager.class);
manager.test();
于 2013-05-15T14:29:07.420 に答える