美文网首页
MVPArms到Dagger2

MVPArms到Dagger2

作者: 丶丶TkoRn丶丶 | 来源:发表于2018-06-05 11:01 被阅读0次

Dagger2 介绍

一般的IOC框架都是通过反射来实现的,单Dagger2作为android端的IOC框架,为了不影响性能,它是通过apt动态生成代码来实现的。

Dagger2 的注解

  • @Inject : 通常在需要依赖的地方使用这个注解。换句话说就是你用它来告诉Dagger这个类或者字段需要依赖注入。这样,Dagger就会构造一个类的实例并满足他们的依赖。
  • @Module :Modules类里面的方法专门提供依赖,所有我们定义一个类,用@Module注解,这样Dagger在构造类的实例的时候,就知道从哪里去找到需要的依赖。modules的一个重要特征是它们设计为区分并组合在一起
  • @Provide : 在modules中,我们定义的方法使用这个注解,以此来告诉Dagger我们想构造对象提供这些依赖。
  • @Component : Components从根本上来说就是一个注入器,也可说是@Inject和@Module的桥梁,它主要作用就是 链接两个部分。Components可以提供所有定义了的类型实例,比如:我们必须用@Component注解一个接口让后列出所有的@Modules组成改组件,如果缺失了任何一块都会在编译的时候报错。所有的组件都可通过他的modules知道依赖的范围。
  • @Scope : Scopes可是非常的有用,Dagger2可以通过自定义注解限定注解作用域

理论就到这里下面我们来看下代码:


1528113303504.png

这个是Appliction的Component提供了app必须的实例。
接下来看AppModule


1528115482215.png

然后我们在看怎么在使用者中去使用module给我们提供的实例


1528166618258.png

以上为本人自己在学习Dagger2的微薄了解。
想要更好的了解Dagger2建议阅读这篇文章:https://github.com/luxiaoming/dagger2Demo#begin

相关文章

网友评论

      本文标题:MVPArms到Dagger2

      本文链接:https://www.haomeiwen.com/subject/kyrpsftx.html