【发布时间】:2017-02-02 23:17:21
【问题描述】:
据我所知,Dagger 确实会生成代码,而 Guice 和 Spring 依赖于运行时处理,因此 Dagger 运行速度更快,但需要程序员方面的更多工作。由于性能优势,它非常适合移动 (Android) 开发。
但是,当我们剩下 Guice 和 Spring 时,后者有很多集成。如果我们可以使用 Spring Framework(基本上做同样的事情,但提供更简单的数据库访问),那么开发/使用 Guice 有什么意义?
Google 不是在尝试通过创建自己的 DI 工具来重新发明轮子,而不是使用(并可能为 Spring Framework 做出贡献)吗?
我正在寻找可以指导选择 DI 工具的决策树。
【问题讨论】:
-
SO 不是推荐/比较软件产品。我认为你的问题在这里真的是题外话。
-
Spring 是一个巨大的、巨大的、庞大的库和实用程序集合。 DI 框架只是其中的一小部分。 Guice 是轻量级的,只是一个 DI 框架。此外,GWT(例如)不能使用 Spring,因为它被编译为 JavaScript。人们可能会问为什么 Spring 存在,因为它正在重塑 CDI。
-
@GhostCat 好的,那我应该去哪里问呢?
-
@BoristheSpider 我正在使用带有 vaadin 的 spring(使用 gwt),它工作正常。就 DI 而言,与 guice 相比,spring 是什么重量级的?
-
我假设您在 服务器端使用 Spring。不在客户端代码中。至于你的第二个问题;我把它作为练习留给你做一些研究。
标签: java spring guice dagger-2