关于Dagger2
- Dagger基础用法
- 对注解的分类讲解——Inject部分
- 对注解的分类讲解——Module部分(一)
- 对注解的分类讲解——Component部分
- 对注解的分类讲解——Module(二)
- 对注解的分类讲解——Module(三)
- 对Dagger中几个类的说明
- Dagger-Android的使用
前言
关于Dagger的相关注解已经在之前的几篇中进行了讲解和分析,部分注解也简单看了一下具体的实现过程,除了注解,Dagger中还有几个常用的类也要来了解一下。
Lazy
延迟注入,只有在调用 Lazy 的 get() 方法时才会初始化依赖实例注入依赖。
Provider
强制注入,但是每次调用get()方法是都会创建一个新的实例。
public class DirectlyInjectActivity extends AppCompatActivity {
@Inject
Provider<DirectlyInject> 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();
}
}
打印的结果会发现两次调用的对象都不一样:
打印结果
网友评论