我是Agorava的技术负责人,这是一个帮助使用社交网络数据的框架。
今天,Agorava 构建在 CDI 之上,以简化其在 Java EE 堆栈中的使用,但我们希望提供一个带有 Dagger 的实现,以便为 Android 提供更轻的解决方案。
我的问题是:我们可以在 CDI 和 Dagger 实现之间共享通用的 JSR 330 兼容代码吗?换句话说,Dagger 是否可以在带有 JSR 330 注释的 jar 中编译代码,并且源代码在 Dagger 特定的 Jar 中扩展或使用此代码(带有@Provides
和@Modules
其他 Dagger 特定项)?
如果答案是否定的,那么用 Dagger 编译器编译我的通用 JSR 330 jar 并在我的 CDI 实现中使用它有什么问题吗?更准确地说@Inject
,限定符和其他 JSR 330 细节将在运行时仍然可用,并且带有这些注释代码的类是否不会受到 Dagger 编译器的影响?最后,是否有一种对 Dagger 生成的代码(类名、注释)的跟踪器,以允许 CDI 检测并忽略它?