我在使用Guice注入特定字段实例时遇到了一些问题。
以下是我目前拥有的内容:
class Driver {
private ThreadLocal<Database> db;
...
}
我通常只是在构造函数中传递db实例。但是这个类将被使用Guice拦截。
这是模块:
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注释了该字段,但仍然不起作用。
@Inject
注释来注释Driver
构造函数? - Tobias Brandt