Dagger2基础

基本概念

  • Module:提供依赖对象 eg: context, rest api …
  • @inject:需要依赖对象的地方
  • Componet:连接Module和inject

其他概念

  • 延迟加载
  • Named injections(区分同类型注入)

Module
modules是一些class
必须在class上加上@Module
必须在每个method上加上@Provides
Modules可以拆开成多个module,组合在一起

Inject需要注入依赖的地方
必须有@Inject的annation
三种inject方式
constructor,field和method injection

Constructor Injection(构造方法注入)

  1. 在Constructor加上@Inject
  2. 表示Constructor的参数需要dependency
  3. 这些参数可以被使用在privte或final字段

Method Injection

  1. 在methods上加上@Inject
  2. 表示method的参数需要dependency
  3. injection发生在对象被完全建立之后
  4. 只有一个合理的use case:passing ‘this’ to a dependency

Field Injection

  1. 在fields上加上@Inject
  2. field不能为private或是final
  3. injection发生在对象完全建立之后
  4. 在anroid最常用到

Componet

连接Moddule和injection
component为injector(注入器) 实际发生inject的人
scope的概念

下面贴出学习Dagger2找到的资料 ,会一直更新

Dagger2简单介绍

http://yongjhih.gitbooks.io/feed/content/dagger2.html#%E4%BB%80%E9%BA%BC%E6%98%AF-di

Dagger 2: Even sharper, less square

http://blog.gouline.net/2015/05/04/dagger-2-even-sharper-less-square/

When the Avengers meet Dagger2, RxJava and Retrofit in a clean way

http://saulmm.github.io/when-Thor-and-Hulk-meet-dagger2-rxjava-1/?utm_source=Android+Weekly&utm_campaign=ba1f0a53c5-Android_Weekly_154&utm_medium=email&utm_term=0_4eb677ad19-ba1f0a53c5-337886713 该博客还有android架构系列 非常值得学习

Snorkeling with Dagger 2

http://konmik.github.io/snorkeling-with-dagger-2.html

Dependency Injection With Dagger 2 on Android

http://code.tutsplus.com/tutorials/dependency-injection-with-dagger-2-on-android–cms-23345

Dagger2 A New Type of dependecy injection
The Future of Dependency Injection with Dagger2台版
Dependency Injection with Dagger2

2015.9.30

Using Dagger 2 for dependency injection in Android - Tutorial

http://www.vogella.com/tutorials/Dagger/article.html?utm_content=buffercd347&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer

你可能感兴趣的:(android,架构,clean,Square,Dagger2)