Dagger2

其版本1是由square开发和维护的,到了版本2的时候就由google维护了。

官网:https://dagger.dev/producers

github:https://github.com/google/dagger

 

参考:深入浅出Dagger2 : 从入门到爱不释手, 这个文章的最后面的代码的单词写错了,将 DaggerCommonComponent  写成了 DaggerCommonCompnent ,这个函数是Dagger2自动生成的,所有需要先编译一下。

public class LoginActivity extends AppCompatActivity implements ICommonView
{

    
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        ButterKnife.bind(this);

        DaggerCommonComponent.
                builder().
                commonModule(new CommonModule(this)).
                build().
                inject(this);

    }


}

还有一个问题,这个demo使用的 butterknife 版本是:

implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

------------------------------

浅显易懂的例子:javascript:void(0)

dagger 2 详解,这个例子,有对应的 github 代码。

这个文章,将component 和 module 的关系说清楚了,也是简单的文章,但后半部分的代码没有贴全,需要自己调试以下。连接:Android - Dagger2使用详解:https://www.jianshu.com/p/2cd491f0da01

这个例子比较好,能看懂:Dagger2使用攻略-基础部分,https://cloud.tencent.com/developer/article/1352715