07.对Dagger中几个类的说明

关于Dagger2

  • Dagger基础用法
  • 对注解的分类讲解——Inject部分
  • 对注解的分类讲解——Module部分(一)
  • 对注解的分类讲解——Component部分
  • 对注解的分类讲解——Module(二)
  • 对注解的分类讲解——Module(三)
  • 对Dagger中几个类的说明
  • Dagger-Android的使用

前言

关于Dagger的相关注解已经在之前的几篇中进行了讲解和分析,部分注解也简单看了一下具体的实现过程,除了注解,Dagger中还有几个常用的类也要来了解一下。

Lazy

延迟注入,只有在调用 Lazy 的 get() 方法时才会初始化依赖实例注入依赖。

Provider

强制注入,但是每次调用get()方法是都会创建一个新的实例。

public class DirectlyInjectActivity extends AppCompatActivity {

    @Inject
    Provider mDirectlyInject;

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

        DaggerDirectlyInjectComponent.create().inject(this);

        Log.d("Dagger测试", "DirectlyInject: " + mDirectlyInject.get());
        Log.d("Dagger测试", "DirectlyInject: " + mDirectlyInject.get());
        mDirectlyInject.get().log();

    }
}

打印的结果会发现两次调用的对象都不一样:


打印结果

你可能感兴趣的:(07.对Dagger中几个类的说明)