@Inject
用来注释需要注入的目标对象,以及用来注入的构造方法
@Component
用来触发注入机制
@Module
标记Module类,用于去Component中注册的Module中搜索注入类
@Provides
在Module中 标记返回值为注入类的方法
@Named
给方法添加了一个新属性,来区分当前注入类的不同注入方式
@Qualifier
自定义注释符,相当于自定义一个@Named,但名字不同
@Singleton
单例注入
@Scope
@Singleton注释就是@Scope的一个默认实现,相当于@Named与@Qualifier的关系
dependencies
用于告诉Dagger,当前Component依赖于XXXComponent
@Subcomponent
与dependencies类似,dependencies中Component强调的是在子类Component依赖于某个Component(子类为主角),而Subcomponent中强调的则是在父类Component中提供某个子类的Component(父类为主角)(dependencies方式让Component之间更加独立,结构更加清晰,也便利于解耦)