【Android 进阶】Dagger2 系列:入门案例一

本文介绍了Dagger2,一个适用于Android和Java的快速依赖注入框架。通过理解依赖和依赖注入的概念,以及核心元素Module、Component和Container,深入探讨Dagger2的工作原理。文中提供了一系列逐步增加复杂性的代码示例,帮助读者理解如何在实际项目中应用Dagger2。
摘要由CSDN通过智能技术生成

欢迎关注我的微信公众号,不只是原创技术分享,更多的是生活的思考和总结。

这里写图片描述

介绍

A fast dependency injector for Android and Java.
一个在 Android 和 Java 平台上使用的快速的依赖注入框架。
类似 java 开发中的 spring 框架,但使用难度比 spring 大一点点。
依赖注入框架主要用于模块间解耦,提高代码的健壮性和可维护性。

几个必须知道的概念:

什么是依赖:

如果在 Class A 中,有 Class B 的实例,则称 Class A 对 Class B 有一个依赖。

什么是依赖注入:

依赖注入就是非自己主动初始化依赖,而通过外部来传入依赖的方式,简单来说就是不使用 new 来创建依赖对象。

三大元素:

必不可少的元素有三种,Module,Component,Container

image
- Container 拥有者,容器等意思,其中 Activity 就是 Dagger2 中的 Container.
- Component Acitvity 和 依赖对象之间的一个桥梁。
- Module 就是负责提供对象的。

用到的注解如下:

@Inject:
通常在需要依赖的地方使用这个注解。换句话说,你用它告诉 Dagger 这个类或者字段需要依赖注入。这样,Dagger 就会构造一个这个类的实例并满足他们的依赖。

@Module:
Modules 类里面的方法专门提供依赖,所以我们定义一个类,用 @Module 注解,这样 Dagger 在构造类的实例
时候,就知道从哪里去找到需要的 依赖。modules 的一个重要特征是它们设计为分区并组合在一起(比如说,
我们的 app 中可以有多个组成在一起 的modules)

@Provide:
在 modules 中,我们定义的方法是用这个注解,以此来告诉 Dagger 我们想要构造对象并提供这些依赖。

@Component:
Components 从根本上来说就是一个注入器,也可以说是 @Inject 和 @Module 的桥梁,它的主要作用就是连接这两个部分。 Components 可以提供所有定义了的类型的实例,比如:我们必须用 @Component 注解一个接口然后列出所有的

官方 Github 地址以及 API 说明文档::

google/dagger

说明文档

使用准备:

project 的 build.gradle 添加

dependencies {
     ... // 其他 classpath
     classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' //添加 apt 命令
 }


module 的 build.gradle 添加

// 添加其他插件
apply plugin: 'com.neenbedankt.android-apt'//添加 apt 命令

dependencies {
    apt 'com.google.dagger:dagger-compiler:2.0.2' //指定注解处理器
    compile 'com.google.dagger:dagger:2.0.2'  //dagger 公用 api
    provided 'org.glassfish:javax.annotation:10.0-b28'  //添加 android 缺失的部分 javax 注解
}

直接从代码出发吧

代码完整,可以直接粘贴到自己 AS 验证。

看一个简单的例子:

代码如下:

MainActivity.java

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值