美文网首页
dragger2新了解

dragger2新了解

作者: itwillrain | 来源:发表于2017-09-11 18:52 被阅读0次

@Inject

构造器注入,@Inject标注在构造器上其实有两层意思。

①告诉Dagger2可以使用这个构造器构建对象。如Rose类

注入构造器所需要的参数的依赖。 如Pot类,构造上的Rose会被注入。

构造器注入的局限:如果有多个构造器,我们只能标注其中一个,无法标注多个。

属性注入

如MainActivity类,标注在属性上。被标注的属性不能使用private修饰,否则无法注入。

属性注入也是Dagger2中使用最多的一个注入方式。

方法注入 // 添加监听

标注在public方法上,Dagger2会在构造器执行之后立即调用这个方法。

方法注入和属性注入基本上没有区别, 那么什么时候应该使用方法注入呢?

比如该依赖需要this对象的时候,使用方法注入可以提供安全的this对象,因为方法注入是在构造器之后执行的。

比如google mvp dagger2中,给View设置Presenter的时候可以这样使用方法注入。

/**

* Method injection is used here to safely reference {@code this} after the object is created.

* For more information, see Java Concurrency in Practice.

*/

@Inject

void setupListeners() {

mTasksView.setPresenter(this);

}

Component中一般使用两种方式定义方法。

void inject(目标类  obj);Dagger2会从目标类开始查找@Inject注解,自动生成依赖注入的代码,调用inject可完成依赖的注入。

Object getObj();如:Pot getPot(); // 类似初始化一些类,提供其他component使用

Dagger2会到Pot类中找被@Inject注解标注的构造器,自动生成提供Pot依赖的代码,这种方式一般为其他Component提供依赖。(一个Component可以依赖另一个Component,后面会说)

相关文章

  • dragger2新了解

    @Inject 构造器注入,@Inject标注在构造器上其实有两层意思。 ①告诉Dagger2可以使用这个构造器构...

  • Dragger2的使用

    Dragger2的使用 依赖 依赖冲突处理: 初级用法 多个Module MultComponent依赖的多个Mo...

  • [Android 学习笔记] Dragger2 依赖注入由浅入深

    1. 在 gradle 中添加依赖 在主项目的 build.gradle 中添加 Dragger2 库的依赖 2....

  • 夯实基础:Java的反射

    前言 为什么要写Java的反射?因为本人在阅读很多注入依赖这种开源库(类似Dragger2,Butterknife...

  • Dragger2解析(一)

    依赖注入(DI-Dependency Injection) 什么是依赖注入 这是一种设计思想,一个面向对象的编程法...

  • Dagger2神器入门(一)

    前言 网上随便搜索一下Dragger2,一大堆文章铺天盖地而来,一上来就讲@Inject,@Module等注解是做...

  • 前端开发如何快速了解新业务

    最近接触新业务较多,关于了解新业务有一点感想,总结如下: 1.比了解新业务代码更重要的是要了解新业务,比了解新业务...

  • Dragger2 依赖注入理解

    1 ,dragger 作用 利用注解,直接将对象注入到目标类,省去手动new的操作,降低耦合2,@inject ...

  • 新媒体运营360°无死角解析(上)

    先了解新媒体,再了解运营,最后了解新媒体运营。 第一章 新媒体行业概览 一、什么是新媒体 【1】新+媒体 【2】媒...

  • 了解新媒体运营

    1,什么是运营? 人们嘴里常说的运营是一个大的模块,我认为互联网产品公司只有3个业务部门:产品,技术,运营。产品运...

网友评论

      本文标题:dragger2新了解

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