初次了解Dagger2
来源:互联网 发布:linux 磁力 下载工具 编辑:程序博客网 时间:2024/06/15 02:41
了解一个新东西,从最简单的demo看起
来源
//首先添加依赖apply plugin: 'com.android.application'apply plugin: 'com.neenbedankt.android-apt' // 注释处理buildscript { repositories { jcenter() } dependencies { classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' }}android { compileSdkVersion 23 buildToolsVersion "23.0.2" packagingOptions { exclude 'META-INF/services/javax.annotation.processing.Processor' } defaultConfig { applicationId "com.cq.demo.dagger2demo" minSdkVersion 19 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.2.0' provided 'javax.annotation:javax.annotation-api:1.2' apt 'com.google.dagger:dagger-compiler:2.0.2' compile 'com.google.dagger:dagger:2.0.2'}
//新建一个Android 项目public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }}//新建一个实体类public class Person { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public Person(String name) { this.name = name; }}//新建一个Module@Modulepublic class ActivityModule { //前缀必须为 @Provides @Provides Person providePeron(){ return new Person("dd"); }}//新建一个component@Singleton //表示这个函数的scope是全局@Component(modules = ActivityModule.class)public interface ActivityComponent { void inject(MainActivity mainActivity);//传入消耗依赖的参数}
然后编译一下,Dagger2会自动生成DaggerActivityComponent
最后在Activity里面调用
public class MainActivity extends AppCompatActivity { private ActivityComponent activityComponent; @Inject Person person; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); activityComponent=DaggerActivityComponent.builder().activityModule(new ActivityModule()).build(); activityComponent.inject(this); Log.e("-->>",person.getName()); }}
然后就可以看到打印出来的内容了
0 0
- 初次了解Dagger2
- (一)Dagger2+retrofit2.0 的初次使用
- Dagger2的了解与使用
- 初次了解视图
- spring websocket 初次了解
- DAT.GUI-初次了解
- android Ant初次接触了解
- 初次了解android的MVP
- 对electron的初次了解
- Dagger2 彻底了解如何构建依赖关系
- Dagger2
- Dagger2
- Dagger2
- Dagger2
- dagger2
- Dagger2
- Dagger2
- Dagger2
- 突然就成了实验室负责人
- 华为oj 表示数字
- 我的ajax第二课
- Notification 小解
- 第一篇博客
- 初次了解Dagger2
- maven环境配置与简单使用
- uva10034
- Kurskal算最小生成树
- Sublime中文显示乱码
- 理解Java对象序列化
- Linux操作系统基础(完结)
- 高斯消元法(普通列主元消元法)模板 ==》 还需要优化
- tomcat nio与bio压测对比