android dagger2 懒加载,架构进阶,Dagger2的原理及使用详解

架构进阶,Dagger2的原理及使用详解

https://www.jianshu.com/p/04d9db541155

解决Android 8.0和9.0无法获取SSID (unknow ssid)

https://blog.csdn.net/weixin_39706415/article/details/84571421

@Named @Scope @Inject  @Provides注解提供,但是呢,这个@Provides只能在固定的模块中,也就是@Module注解,我们查找的时候,不是直接去找模块,而是去找@Component

->@Module

Activity / Fragment ->Component-> Module->Providers注解,去寻找A的实例化对象。

Providers注解,去寻找A的实例化对象。

->annotationProcessor compiler

@Module

MainModule

//第二步 使用Provider 注解 实例化对象

@Provides

void inject (MainActivity activity)

将Component与Activity/Fragment绑定关系

DaggerMainComponent.create.injectthis

3. 高级用法

(1)构造方法需要其他参数时候

@Module(includes = {45})

dependencies 依赖其他Component

一个Component 应用多个 module

dependencies 依赖其他Component

@Named注解使用

DaggerMainComponent.builder

.build.inject

(4) @Singleton注解

module Component

@Singleton

@Component

单利对象只能在同一个Activity中有效。不同的Activity 持有的对象不同

Scoped

Retention RUNTIME

DaggerMainComponent

.builder

.mainModule

.build

.add

.inject

this

PresentForName

lazy.get provider.get

其中Lazy(懒加载)的作用

Lazy component present  get

procider(强制加载)

@Singleton

@Component ()

SplashPresenter,也就是启动页的Presneter,业务逻辑

SplashPresenter ,也就是启动页的Presneter,业务逻辑

@Provides

依赖注入框架 ----Dagger2 使用详解及源码分析

https://blog.csdn.net/zengke1993/article/details/80591427

依赖注入:

IoC不是一种技术

@Inject

Dagger就是一款基于Java注解实现完全在编译阶段完成依赖注入的开源库,

主要用于模块间解耦,提高代码的健壮性和可维护性。

Java注解实现  编译阶段完成 依赖注入

@Inject标记了的变量提供依赖。 @Module

@Module : 用于标记提供依赖的类(可以理解为仓库类,工厂类)

@Module

@Provides-> @Module

Component

DaggerComputerComponent

@Qualifier

@Qulifer : 用于自定义注解。被依赖对象被注入到依赖对象中时,依赖对象对被依赖对象的创建过程是不关心的。

Qualifier 用于自定义注解。被依赖对象被注入到依赖对象中时,依赖对象对被依赖对象的创建过程是不关心的。

这时使用@Qulifer来定义自己的注解,然后通过自定义注解去标注提供依赖的方法和依赖需求方,这样就可以精准地拿到所需要的被依赖实例。

@Scoped 限定注解作用域 实现局部单例的。

@SingleTon

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值