Guice を使用して特定のフィールド インスタンスを挿入する際に、いくつかの問題が発生しています。
これが私が現在持っているものです:
class Driver {
private ThreadLocal<Database> db;
...
}
私は通常、コンストラクターで db インスタンスを渡すだけです。しかし、このクラスは偽装を使用して傍受されます。
モジュールは次のとおりです。
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);
}
}
そして、これが私がすべてのものをインスタンス化する方法です:
Injector injector = new Injector(new MyGuiceModule(db));
Driver driver = injector.getInstance(Driver.class);
かなり明白だと思いますが、ここで何が間違っているのでしょうか?
編集:
わかりにくかったらごめんなさい。私の問題は、これが機能していないことです。インスタンスは注入されていません。@Inject でフィールドに注釈を付けましたが、まだ機能しません。