问题标签 [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.

0 投票
4 回答
7461 浏览

dependency-injection - 将 Kotlin 与 Dagger 一起使用

使用 Dagger 将依赖项注入类的最佳方法是什么,尤其是像活动这样的零参数构造函数类,使用 Dagger?Dagger 2 可能会改善这种情况吗?

提前致谢。

0 投票
9 回答
27481 浏览

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.

0 投票
4 回答
26130 浏览

android - 匕首 2 示例

Dagger 2 即将推出,但可用的示例甚至无法立即编译,并且文档是 Dagger 1 的复制粘贴替换。

有没有人有一个在谷歌的 Dagger 2 上工作的正确应用程序的例子?

0 投票
2 回答
22657 浏览

android - 如何在 Android 项目中从头开始设置 DAGGER 依赖注入?

如何使用匕首?如何配置 Dagger 以在我的 Android 项目中工作?

我想在我的 Android 项目中使用 Dagger,但我觉得它很混乱。

编辑: Dagger2 自 2015 年 4 月 15 日以来也已发布,而且更加令人困惑!

[这个问题是一个“存根”,当我了解更多关于 Dagger1 和更多关于 Dagger2 的信息时,我将在这个问题上添加到我的答案中。这个问题更像是一个指南,而不是一个“问题”。]

0 投票
1 回答
4072 浏览

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_* 保留类。

0 投票
3 回答
2514 浏览

dagger - Dagger 和 Dagger 2.0 有什么区别?

Dagger 和 Dagger 2.0 有什么区别,为什么 Google 决定分叉现有项目?

0 投票
3 回答
7456 浏览

java - Dagger 2 没有生成类

我想尝试一些新的东西并使用 Dagger 2 作为我的 DI 框架。所以我的项目中有以下 pom 和“hello world”咖啡机类(http://google.github.io/dagger/)。

但是当我执行 mvn clean install 时,不会生成任何类。据我了解,应该生成一个“Dagger_CoffeeShop”类。嗯......我错过了什么?

0 投票
2 回答
1776 浏览

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?

0 投票
1 回答
1024 浏览

android - 如何在具有 2 种不同实现的 dagger 模块中提供单例

想象一个匕首module,它有以下两种方法来提供一个对象。

在我的示例StateCache中实现了Cache<User>Cache<Settings>接口。现在不是两个方法都返回一个实例StateCache,我希望两个方法都明显指向同一个实例。如何在 Dagger 中实现这一点?是否module持有对 的一个实例的引用StateCache,并且两种方法都返回该引用?

0 投票
1 回答
10083 浏览

android - Dagger 2 - 来自不同组件的模块

我不太确定如何用 dagger 2 解决这个问题。假设我们有ApplicationModule它提供给我们,ApplicationContext 那么我们有ApplicationComponent它只使用这个模块。然后在它之上,我们拥有ActivityModule并且ActivityComponent依赖于ApplicationComponent. ActivityComponent构建就像

然后我注入我的活动:

现在我可以使用在 my 中声明的所有内容ActivityModule,但是我无法访问ApplicationModule.

那么问题是如何实现呢?这样当我构建依赖于另一个组件的组件时,我仍然可以从第一个组件访问模块吗?

编辑

我想我已经找到了解决方案,在再次观看Jake 的 Devoxx 演讲后,我不得不错过这一点,无论我想从另一个组件模块中使用什么,我必须在该组件中提供,例如我想从ApplicationModule内部使用 ContextApplicationComponent我必须声明Context provideContext();并且它将可用。很酷:)