Dagger2的使用(0):
来源:互联网 发布:datagridview添加数据 编辑:程序博客网 时间:2024/05/01 21:26
1、导入必要jar包
//在项目builde.gradle中配置 dependencies { classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' //用于Dagger2 在rebuildeProject 的时候自动生成代码 } //在app中的build.gradle中添加 compile 'com.google.dagger:dagger:2.0.2' // dagger2 compile 'com.google.dagger:dagger-compiler:2.0.2' // dagger2 provided 'javax.annotation:jsr250-api:1.0' // Java标注 PS:这个如果不添加的话编译会出现 Generated注解不存在的错误
2、在实体类中定义一个构造方法,构造方法上用注解@Inject来进行注解,用于生成对象(一般情况)。
如:
//构造方法只能有一个public class Teacher {@Injectpublic Teacher() {}public String name;public int age;@Overridepublic String toString() { return "Teacher{" + "name='" + name + '\'' + ", age=" + age + '}';}}
3、定义Component接口,用于指向需要注入该对象的类。
如:
@Componentpublic interface MainActivityComponent { void inject(MainActivity activity);}
4、在需要该对象的类中用@Inject注解进行注入。
如在MainActivity中:
@InjectTeacher mTeacher;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); DaggerMainActivityComponent.create().inject(this);
至此,就可以初步使用Dagger2进行一般的依赖注入了。
但是有时候需要注入的对象是第三方的,我们已经没办法向里面进行@Inject注解指定构造方法了。
另一种情况当需要进行依赖倒置的时候,(即子类继承抽象类,另一个类以抽象类作为引用接受子类)
这两种情况都不适用只用@Inject注解 而要用到@Module和@Provide
0 0
- Dagger2的使用(0):
- (一)Dagger2+retrofit2.0 的初次使用
- Dagger2的使用
- 对Dagger2的使用
- Dagger2的使用
- Dagger2的简单使用
- Dagger2的简单使用
- Dagger2的使用(1)
- Dagger2的使用(2)
- Dagger2的使用(3)
- Dagger2的简单使用
- Dagger2的基本使用
- Dagger2的使用总结
- Dagger2的简单使用
- Dagger2的使用
- dagger2 的基本使用
- Dagger2的使用
- Dagger2 的简单使用
- JS基础加强五_数组操作
- JS基础_DOM属性和操作
- JS基础_BOM属性
- Leetcode 52. N-Queens II (Hard) (cpp)
- java中volatile关键字的含义
- Dagger2的使用(0):
- STL拾遗之map操作
- nload : 实时查看linux服务器网络流量的工具
- 全选和反选
- java多线程开发基础
- 如何方便快速在指定文件夹打开命令行
- 瀑布流
- mysql 查询基础知识
- 事件驱动程序设计