Dagger2 @Singleton
注释类的@Component
注释与模块中的@Provides
注释方法有什么区别?
如果我有一个模块,其中所有方法都使用@Singleton
注释注释,并且具有相同注释的组件包含该模块,那么这个目的是什么?
@Singleton
@Component(...)
public interface AppComponent {
// ...
}
和
@Provides @Singleton Context provideContext() { return context; }
答案 0 :(得分:1)
注释k
方法(或带有@Provides
构造函数的类)告诉Dagger实现实际的作用域功能,而注释组件(这是必要的)没有任何功能,但是告诉Dagger“我允许此组件包含此范围的绑定”。请注意,您仍然可以在范围内的组件中使用未范围的绑定,但不能相反。
答案 1 :(得分:-1)
使用Java注释为读者提供文档很好,这是您在第一个示例中可能看到的内容。它在那里非常有用,因此读者可以知道类/接口的预期用途,而无需知道其实例的创建或管理机制。