Android 模块和组件中作用域之间的差异

Android 模块和组件中作用域之间的差异,android,dagger-2,Android,Dagger 2,Dagger2@组件注释类上的@单例注释与模块中提供注释方法之间的区别是什么 如果我有一个模块,其中所有方法都使用@Singleton注释进行注释,并且有一个组件具有包含该模块的相同注释,那么这是为了什么 @Singleton @Component(...) public interface AppComponent { // ... } 及 使用Java注释可以很好地向读者提供文档,这可能就是您在第一个示例中看到的。它在这里很有用,这样读者就可以知道类/接口的预期用途,而不必知道

Dagger2
@组件
注释类上的
@单例
注释与模块中提供注释方法之间的区别是什么

如果我有一个模块,其中所有方法都使用
@Singleton
注释进行注释,并且有一个组件具有包含该模块的相同注释,那么这是为了什么

@Singleton
@Component(...)
public interface AppComponent {

    // ...

}


使用Java注释可以很好地向读者提供文档,这可能就是您在第一个示例中看到的。它在这里很有用,这样读者就可以知道类/接口的预期用途,而不必知道创建或管理其实例的机制。

注释
@提供了
方法(或具有
@Inject
构造函数的类)告诉Dagger实现实际的作用域功能,而注释组件(这是必要的)没有任何功能,但告诉Dagger“我允许此组件包含此范围的绑定”。请注意,您仍然可以在作用域组件中使用非作用域绑定,但不能反过来

@Provides @Singleton Context provideContext() { return context; }