android - Dagger 2 自定义范围声明中的保留策略
问题描述
在 Dagger 2 中,当声明自定义范围时:
@Scope
@Retention(RetentionPolicy.RUNTIME)
public @interface MyScope {
}
我看到很多 Dagger2RUNTIME
的教程都用作保留策略。我理解和SROUCE
之间的区别。但我不明白为什么这些教程中的匕首自定义范围都用作其保留策略。CLASS
RUNTIME
RUNTIME
我的意思是不是在编译期间生成了依赖关系图,这意味着仅在编译期间才需要范围,那么,为什么不在CLASS
Dagger2 的自定义范围中用作保留策略呢?谁能给我解释一下?
解决方案
你是对的。与 Dagger 无关,但它可能与其他(运行时)依赖注入框架有关。
Dagger 使用的javax.inject
包也被其他 DI 框架使用,并且带有自己的合同/文档。
如果您阅读,Scope
您会看到:
范围注释 [..] 用
@Scope
,注释@Retention(RUNTIME)
,通常是@Documented
。
所以这实际上是关于遵守该合同(并支持其他 DI 框架),而不是关于 Dagger 在内部如何工作。
推荐阅读
- typescript - 如何在 pwa 中导入 Twilio 以进行 OTP 验证?
- angular - 如何动态地将一个组件附加到另一个组件?
- ubuntu-16.04 - 我正在安装 ELK,但遇到了一些问题。我该如何解决?
- sql - 在 SQL Server 中使用 TO_CHAR 函数
- python - 如何使用 matplotlib 在 x 轴上绘制循环变量 i,在 y 轴上绘制循环中的局部变量
- r - 是否可以重新排列链接,以便将相应的链接连接在一起?
- amazon-web-services - 如何从 aws cli 制作 EBS 卷的快照?
- php - 如何在我的 ISP 服务器上安装 php-mime-mail-parser?
- python - Python中读取word文件中的不可打印字符
- python-3.x - 如何在python中获取不同维度的多个数组?