美文网首页
Dagger初体验0.1

Dagger初体验0.1

作者: wzg_gitee | 来源:发表于2021-04-21 22:27 被阅读0次

如果文章对你有所帮助请点个赞,写文章需要勇气,也需要得到肯定,如果所有人都只知道取而没有舍,将不会有人开源与分享。

我是wzg,也是墨。

Dagger2使用0.2快捷链接:
https://www.jianshu.com/p/62f755228c98

Dagger2了解过的人都说是学习成本比较高的,相对于大对数项目都使用不上。
但是推出就一定有他的道理,爱学习技术的我就会各种逛github,终于有了对Dagger2的一点点使用见解。

1.首先当然是导入依赖,可以根据自己喜欢的版本使用

    // dagger2
    implementation 'com.google.dagger:dagger:2.23.1'
    annotationProcessor 'com.google.dagger:dagger-compiler:2.23.1'

2.注解介绍

这里描述的紧代表个人对注解的理解

@Inject :表面意思是就是注入

@Component :用于连接module的桥梁

@Provides :提供对应的实例

@Module :管理实例的容器


我的见解就是: ``需求方 <---> 中间商  <--->  生产商``


3.实例使用:

使用Dagger2的方式如何调用ApiService 的register()

public class ApiService {
        
    public void register() {
        LogR.logDateE("注册成功了");
    }
}

3.1 首先需要创建一个module容器得到实例(提供者)

@Module//标注当前类是module容器
public class RegModule {

    @Provides//提供实例
    public ApiService  provideApiService(){
        return  new ApiService();
    }
}

3.2 中间商的写法

//使用Component连接module
@Component(modules ={RegModule.class })
public interface RegComponent {

    //通常写法:内部是使用者
    void   inject(MainActivity  mainActivity);
}

3.3 需求方如何使用?看代码

注意ApiService并没有直接new实例化对象,而是使用Dagger2注入生成代码管理实例关联。

DaggerRegComponent是写好Component之后reBuild才生成的对象。

public class MainActivity extends AppCompatActivity {


    /*使用了Inject 就会向 UserComponent内去找对象*/
    @Inject
    ApiService  mApiService;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /* DaggerRegComponent  是项目reBuild后生成的
         *
         * 关联接口UserComponent
         */
        DaggerRegComponent.create().inject(this);

        mApiService.register();
    }
}

4.运行项目出现一下代表你已经学会了本文的所有,谢谢你的星星or爱心。

image.png

到此已经结束,希望本文对你有所帮助。如果后续有时间将会继续写下去,帮助需要的伙伴把Dagger2这块硬骨头啃下去。

相关文章

  • Dagger初体验0.1

    如果文章对你有所帮助请点个赞,写文章需要勇气,也需要得到肯定,如果所有人都只知道取而没有舍,将不会有人开源与分享。...

  • Dagger的使用0.2

    我写了一篇关于Dagger0.1初体验的文章,如何没有了解伙伴可以先看上一篇,可能会对本文章有比较好的体验。 我是...

  • Dagger之初体验

    背景 举个例子:我们在写面向对象程序时,往往会用到组合,即在一个类中引用另一个类,从而可以调用引用的类的方法完成某...

  • Dagger2初体验

    0、配置环境build.gradle(Module:app) 1、创建一个对象类 2、创建一个Module 3、创...

  • Dagger之拓展多构造函数

    这篇不同于初体验教你如何使用,和一些基本的原理。本篇主要讲诉Dagger在面对某些复杂场景的下的扩展。 场景:多构...

  • Dagger

    Dagger on Android-Dagger2详解 使用Dagger 2依赖注入 - API 使用Dagger...

  • Dagger依赖注入框架(入门)

    目录 Dagger简介 Dagger1.x,Dagger2.x简单对比 Dagger中的注解@Inject@Pro...

  • Dagger2解析3-SubComponent

    Dagger2系列: Dagger2解析-1 Dagger2解析2-Component的依赖关系 Dagger版本...

  • Dagger2 框架与 SystemUI

    学习笔记:Dagger源码[https://github.com/google/dagger] Dagger2 注...

  • Dagger2入门

    1.Dagger2简介 1.1 Dagger2的描述 Github地址:Dagger2 Dagger2官网上介绍是...

网友评论

      本文标题:Dagger初体验0.1

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