文档章节

Dagger2 Scope && Qualifier

lightUp
 lightUp
发布于 2016/11/14 20:20
字数 211
阅读 31
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

@Scope annotation

    @Scope
    public [@interface](https://my.oschina.net/u/996807) ActivityScope {
    
    }

Another part of JSR-330 standard. In Dagger 2 @Scope is used to define custom scopes annotations. In short they make dependencies something very similar to singletons. Annotated dependencies are single-instances but related to component lifecycle (not the whole application).

Now worth-mentioning is that all custom scopes does the same thing (from code perspective) - they keep single instances of objects. But also they are used in graph validation process which is helpful with catching graph structural problems as soon as possible.

@Qualifier

@Qualifier annotation helps us to create “tags” for dependencies which have the same interface. Imagine that you need to provide two RestAdapter objects - one for Github API, another for facebook API. Qualifier will help you to identify the proper one:

Naming dependencies

@Provides
[@Singleton](https://my.oschina.net/u/674)
@RestAdapter("github")  //Qualifier
RestAdapter provideRestAdapter() {
	return new RestAdapter.Builder()
				.setEndpoint("https://api.github.com")
				.build();
}

another:

@Provides
@Singleton
@RestAdapter("facebook")  //Qualifier
RestAdapter provideRestAdapter() {
	return new RestAdapter.Builder()
			.setEndpoint("https://api.facebook.com")
			.build();
}

and this the qualifier:

@Qualifier
@Documented
@Retention(RUNTIME)
public @interface RestAdapter {

	/** The name. */
	String value() default "";
}

then you can inject the tagged objects:

@Inject
@RestAdapter("github")
RestAdapter githubRestAdapter;

@Inject
@RestAdapter("facebook")
RestAdapter facebookRestAdapter;

reference: Dependency injection with Dagger 2 - Custom scopes

上一篇: nestedscroll
下一篇: C&Linux
lightUp
粉丝 10
博文 242
码字总数 287936
作品 0
杭州
程序员
私信 提问
加载中
请先登录后再评论。
获取spring 的bean 方法总结

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,如何在程序中获取Spring配置的bean呢? Bean工厂(com.springframework.beans.factory.BeanFactory)是Spring框架最核心的...

hello菜bird
2016/01/08
9.6K
16
Spring框架知识总结-注入Bean的各类异常

近日整合sping和hibernate框架时遇到了一系列的异常,本次主要说明一下spring框架可能出现的异常及解决方案。 我们借助sping强大的bean容器管理机制,通过BeanFactory轻松的实现javabean的生...

宋建国
2016/08/07
993
0
提供一个 APP 的不同架构实现--DesignResCollection

DesignResCollection 提供同一个 App 的不同架构实现,对其进行对比分析,方便大家选取使用 项目启发来自谷歌的同类框架项目 https://github.com/googlesamples/android-architecture 为什么...

boredream
2016/08/17
898
0
AresFramework,实现 IOC、AOP 和 MVC 框架--AresFramework

AresFramework,支持IOC、AOP、MVC功能: IOC:支持Component、Resource、Scope注解,按名-按类型方式注入; AOP:支持Aspect、Pointcut、Order注解,使用JDK动态代理,支持切面排序; MVC:...

柳云龙
2016/11/03
1.7K
2
重构 Swift 代码的 Xcode 插件--Refactorator

Refactorator 是用于重构 Swift 代码的 Xcode 插件。它可以重命名公共或内部的变量、函数、enums 等等。对于私有和本地 entities,可以使用 Xcode 已有的 "Edit All in Scope"功能。Refacto...

匿名
2016/01/20
448
0

没有更多内容

加载失败,请刷新页面

加载更多

用flutter_staggered_grid_view实现分页瀑布流效果【flutter20个实例之四】

一、老套路,先看样式 二、讲解 1.前言的话 GridView是一个可滚动的,2D数组控件可以用这个组件实现滚动效果,但是它渲染的高度是一样的。 如果要实现不同高度的滚动瀑布流,就要使用这个插件...

一代码农码一代
1分钟前
0
0
C语言中结构体直接赋值?

在C语言中结构体变量之间可以进行赋值操作吗? 简单结构体的赋值 先说结论:一般来说,C语言中的结构体变量可以用另一个变量对其进行赋值或初始化。简单结构体(不包含指针成员)直接赋值没有...

高奕
6分钟前
0
0
python表白神器你值得拥有

上一期云舔狗的效果好像反响不错,大家纷纷摆脱双手的束缚python云舔狗自动给微信好友发送早安晚安和播报天气预报,然后纷纷获得她(们)的芳心,就此一行君建议大家应该乘胜追击,吹响最后的号...

行哥玩Python
05/11
0
0
在SQL表中查找重复值 - Finding duplicate values in a SQL table

问题: It's easy to find duplicates with one field: 使用一个字段很容易找到duplicates : SELECT name, COUNT(email) FROM usersGROUP BY emailHAVING COUNT(email) > 1 So if we h......

fyin1314
13分钟前
0
0
Rust和为n的连续正数序列

题目:输入一个正数n,输出所有和为n 连续正数序列。 例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3 个连续序列1-5、4-6 和7-8。 fn main() { sum_is_n_continuous(15isize); ...

捍卫机密
21分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部