美文网首页
教你三分钟学会使用Dagger2

教你三分钟学会使用Dagger2

作者: Summer_LJ | 来源:发表于2017-12-12 14:23 被阅读0次

    前言:

    我们不讨论Dagger2,这篇文章旨在教你如何快速的学会使用Dagger2。

    Dagger2配置

    //project的build.gradle
    dependencies {
       classpath'com.android.tools.build:gradle:3.0.1'
       classpath'com.neenbedankt.gradle.plugins:android-apt:1.8'//添加apt插件
    }
    
    //module的build.gradle
    dependencies {
    compile'com.google.dagger:dagger-android:2.13'
    compile'com.google.dagger:dagger-android-support:2.13'
    annotationProcessor'com.google.dagger:dagger-android-processor:2.13'
    annotationProcessor'com.google.dagger:dagger-compiler:2.13'
    }
    

    接下来我们写一个极为简单的Dagger2例子,新建一个工程,把一个对象注入到MainActivity中

    一、写一个测试类,此类是需要被注入的对象

    public class Test{
        public void method(){
           Log.e("test","success");
      }
     }
    

    二、编写一个Module

    @Module
    public class MainActivityModule{
    @Provides
    public Test provideTest(){
    return new Test();
    }
    }
    

    简单的讲下Module的作用:
    生成我们所需要的注入对象,上面的provideTest()方法就会生成Test对象,然后注入到目标位置
    注意:
    1.类必须要用@Module来标明注解
    2.用@Provides注解的函数需要以provide开头,后面接什么内容都可以

    三、编写Component

    @Component(modules = MainActivityModule.class)
    public interface MainActivityComponent {
        void inject(MainActivity activity);
    }
    

    编写的这个Component需要用@Component注解来标识,同时声明了modules
    inject里面参数是申明你注解到的目标对象

    四、Build-->Make Project 编译
    apt会自动生成一个以Dagger开头的Component,我们上面写的是MainActivityComponent,生成了类名就为DaggerMainActivityComponent。这个类我们可直接调用

    五、注入到目标对象中(MainActivity)

    public class MainActivity extends AppCompatActivity {
        //注入
        @Inject 
        Test test;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //使用Dagger2形成关联
             DaggerMainActivityComponent.builder().mainActivityModule(new MainActivityModule()).build().inject(this);
             test.method(); //测试
        }
    }
    

    相关文章

      网友评论

          本文标题:教你三分钟学会使用Dagger2

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