问题标签 [dagger-2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dependency-injection - 将 Kotlin 与 Dagger 一起使用
使用 Dagger 将依赖项注入类的最佳方法是什么,尤其是像活动这样的零参数构造函数类,使用 Dagger?Dagger 2 可能会改善这种情况吗?
提前致谢。
android - How do you override a module/dependency in a unit test with Dagger 2.0?
I have a simple Android activity with a single dependency. I inject the dependency into the activity's onCreate
like this:
In my ActivityUnitTestCase
I want to override the dependency with a Mockito mock. I assume I need to use a test-specific module which provides the mock, but I can't figure out how to add this module to the object graph.
In Dagger 1.x this is apparently done with something like this:
What's the Dagger 2.0 equivalent of the above?
You can see my project and its unit test here on GitHub.
android - 匕首 2 示例
Dagger 2 即将推出,但可用的示例甚至无法立即编译,并且文档是 Dagger 1 的复制粘贴替换。
有没有人有一个在谷歌的 Dagger 2 上工作的正确应用程序的例子?
android - 如何在 Android 项目中从头开始设置 DAGGER 依赖注入?
如何使用匕首?如何配置 Dagger 以在我的 Android 项目中工作?
我想在我的 Android 项目中使用 Dagger,但我觉得它很混乱。
编辑: Dagger2 自 2015 年 4 月 15 日以来也已发布,而且更加令人困惑!
[这个问题是一个“存根”,当我了解更多关于 Dagger1 和更多关于 Dagger2 的信息时,我将在这个问题上添加到我的答案中。这个问题更像是一个指南,而不是一个“问题”。]
android - Kotlin 中 Dagger 2 的未解决参考
我正在尝试在我用 Kotlin 编写代码的 Android 项目中使用 Dagger 2。我从 Dagger 2 repo android-simple中举了一个例子。我已经设法使用来自dagger-android-gradle-sample的示例在 Android Studio 中正确配置项目,它包含正确配置的 gradle 文件。
现在我开始将 java 类更改为 kotlin。这是DemoApplication.java
在 kotlin 中自动转换的样子:
Dagger 生成的类在 Kotlin 中是可见的,但它抱怨类名中使用了 ($) 符号。Kotlin 中的 ($) 有特殊用途,所以我想这就是原因。您可以注意到自动转换用 (`) 符号包装了类名,因此编辑器不会抱怨它。不幸的是,编译器失败了:
如果我尝试从终端构建它,也会有一个例外:
有谁知道如何解决这个问题?如果不是,我将不得不在 java 中使用 Dagger_* 保留类。
dagger - Dagger 和 Dagger 2.0 有什么区别?
Dagger 和 Dagger 2.0 有什么区别,为什么 Google 决定分叉现有项目?
java - Dagger 2 没有生成类
我想尝试一些新的东西并使用 Dagger 2 作为我的 DI 框架。所以我的项目中有以下 pom 和“hello world”咖啡机类(http://google.github.io/dagger/)。
但是当我执行 mvn clean install 时,不会生成任何类。据我了解,应该生成一个“Dagger_CoffeeShop”类。嗯......我错过了什么?
maven - Dagger - specify generated source file directory when building with maven
This might simply be a maven question. I'm just getting started with Dagger 2 which uses javax.annotation.processing to generate sources based on annotations.
When I use my IDE, IntelliJ, and build the project (Build - Rebuild Project) it places the generated sources files (i.e. $$Factory and Dagger_) in:
IntelliJ automatically declares this as a source root so using the generated classes doesn't get marked as an error:
The problem is that if I build from the command line via maven:
The generated sources are located in:
And thus the files are marked with an error in my IDE. I could probably simply add target/classes as a source root, but ideally I would like compiling from the command line to be consistent with my IDE. Is there some argument to maven to specify which directory the generated sources files are generated in?
android - 如何在具有 2 种不同实现的 dagger 模块中提供单例
想象一个匕首module
,它有以下两种方法来提供一个对象。
在我的示例StateCache
中实现了Cache<User>
和Cache<Settings>
接口。现在不是两个方法都返回一个实例StateCache
,我希望两个方法都明显指向同一个实例。如何在 Dagger 中实现这一点?是否module
持有对 的一个实例的引用StateCache
,并且两种方法都返回该引用?
android - Dagger 2 - 来自不同组件的模块
我不太确定如何用 dagger 2 解决这个问题。假设我们有ApplicationModule
它提供给我们,ApplicationContext
那么我们有ApplicationComponent
它只使用这个模块。然后在它之上,我们拥有ActivityModule
并且ActivityComponent
依赖于ApplicationComponent
.
ActivityComponent
构建就像
然后我注入我的活动:
现在我可以使用在 my 中声明的所有内容ActivityModule
,但是我无法访问ApplicationModule
.
那么问题是如何实现呢?这样当我构建依赖于另一个组件的组件时,我仍然可以从第一个组件访问模块吗?
编辑
我想我已经找到了解决方案,在再次观看Jake 的 Devoxx 演讲后,我不得不错过这一点,无论我想从另一个组件模块中使用什么,我必须在该组件中提供,例如我想从ApplicationModule
内部使用 ContextApplicationComponent
我必须声明Context provideContext();
并且它将可用。很酷:)