java - 了解 dagger2 的用法

标签 java dependency-injection dagger-2

我下载了 Coffee sample application并将其带入我的 IDE 中。运行 mvn clean 后,我的 IDE 报告编译错误为:

enter image description here

在我运行mvncompile之前它不会得到修复。显然,示例代码引用了该工具生成的某个类。

我对这个设计感到非常惊讶,因为在编译项目之前,你不会有一个准备编译的项目(看起来像),有点像你必须吃自己的鸡蛋才能出生。

问:这是dagger2的正常使用场景吗?还是我错过了什么?

最佳答案

是的。 Dagger 利用 Java Annotation Processing Tool ,它会 Hook 编译过程。在注释处理过程中,会生成 DaggerCoffeeApp_Coffee 类,之后将原始源代码和生成的源代码作为一个整体进行编译。

不用说,在编译之前这个类还不存在。这就是您的 IDE 无法找到它并将其标记为错误的原因。运行mvncompile后,可以找到该类。

关于java - 了解 dagger2 的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30360236/

相关文章:

android - 使用 Dagger 2 自动注入(inject) Activity 的问题

java - 考虑速度的特定路径算法

java.io.IOException : Unable to establish loopback connection when starting Tomcat v9. 0.2.0 使用 JVM v1.8.0_162

c# - 具有多个项目的 ASP.NET MVC 架构中的依赖注入(inject)

dependency-injection - 当有两个不同的构造函数时如何使用 Guice 进行注入(inject)?

android - 使用 Dagger2 的多模块 android 应用程序,在功能模块中不使用 `kapt`

java - Dagger 2.0 - AppEngine - gradle 配置

java - 在 Swing 中禁用按键重复

Java 日期解析

java - Undertow Websocket Bean 注入(inject) CDI 问题