【发布时间】:2021-05-26 19:14:19
【问题描述】:
我想在当前配置了 Guice 的项目中使用 Dagger。我对 DI 的概念仍然很陌生,但我看到 Guice 和 Dagger 都使用 @Inject 和 @Provides 符号。我对@Module 和@Component 注释以及如何设置它们有所了解,但我想知道@Inject 和@Provides 是否可以基本上保持原样?
例如,假设我在 Guice 中有这个:
public class ModuleA extends AbstractModule {
@Inject
public ModuleA() {
...
}
@Provides
@Singleton
protected InterfaceX() {
...
}
}
假设还有一个组件等,以下 dagger 实现是否可以相同?
@Module
public class ModuleA {
@Inject
public ModuleA() {
...
}
@Provides
@Singleton
protected InterfaceX() {
...
}
}
让我感到困惑的一件事是 @Provides 在 Dagger 中用于将实现绑定到接口,我不确定它是否在 Guice 中用于此目的。
同样,我对此很陌生,所以任何澄清都将不胜感激。谢谢!
【问题讨论】:
标签: java dependency-injection guice dagger