Die Injektion bestimmten Instanz mit Guice

Ich habe ein paar Probleme mit dem Einspritzen einer bestimmten Feld-Instanz mit Guice.

Hier ist, was ich derzeit habe:

class Driver {
   private ThreadLocal<Database> db;

   ...
}

Würde ich in der Regel einfach die db-instance in einem Konstruktor. Aber dieser Klasse abgefangen werden, mit guice.

Hier ist das Modul:

 class MyGuiceModule extends AbstractModule {

    private ThreadLocal<Database> dbToInject;

    public MyGuiceModule(ThreadLocal<Database> dbToInject) {
         this.dbToInject = dbToInject;
    }

    @Override
    protected void configure() {

         //Binds the interceptor.
         bindInterceptor(....);

         bind(ThreadLocal.class).toInstance(this.dbToInject);
    }
 }

Und hier ist, wie ich bin instanziieren von all dem Zeug:

Injector injector = new Injector(new MyGuiceModule(db));
Driver driver = injector.getInstance(Driver.class);

Ich Wette, es ist ziemlich offensichtlich, aber was mache ich hier falsch?

EDIT:

Sorry wenn ich nicht klar. Mein problem ist, dass dies nicht funktioniert. Die Instanz wird nicht eingespritzt wird. Ich habe kommentiert das Feld mit @Inject und funktioniert immer noch nicht.

  • Warum nicht einen Driver Konstruktor versehen mit @Inject?
  • Was ist das genaue problem, das Sie haben?
  • Bekommst du eine Fehlermeldung? Wollen Sie, den code zu verbessern? Es ist nicht klar.
InformationsquelleAutor halfwarp | 2013-05-25
Schreibe einen Kommentar