3

我有一个用 Java SE (JdK 1.7) 编写的大型应用程序。但它越来越难以维护。我认为将 DI 引入这个项目是个好主意。只要我有 Java EE 框架的经验,我就想知道,当不使用 Glassfish 或 Spring 框架等任何容器时,实现依赖注入的最常见方法是什么。我读过关于 Weld 和 Guice 的文章,但不知道哪个更好,在容器外单独使用 DI 这样的技术是否“正常”。

我如何从 Java SE7 中的 IoC 中受益,这是否合理?如果是,那么在这样一个普通项目中用于 DI 的库是什么?

4

2 回答 2

3

我想要一个类似的东西,并决定使用guice:

Guice(读作“juice”)是一个适用于 Java 5 及更高版本的轻量级依赖注入框架,由 Google 提供。 https://code.google.com/p/google-guice/

它几乎没有依赖关系,不需要另一个容器/框架来操作,并且有据可查。

在容器外使用 DI 是完全正常的,而且非常值得预付费用。我节省了很多小时的开发时间,因为现在我可以通过遵循简单的模式轻松安全地连接依赖项,并在整个应用程序中创建一致性。

于 2013-10-28T14:14:05.947 回答
3

我已经使用了 Guice(很多)和 Spring(一点)。

Spring 很大但模块化。这意味着,如果您只需要一点点,您可以将其设置为只使用一点点,因为所有其他模块都遵循核心中使用的相同模式,您可以轻松地选择它们。然而,教程等可能会泛滥到 Spring 中,这可能会使事情变得混乱。

Guice 小而有针对性。它只包含一点,所以很容易学习。但是当您想要更多时提供的帮助很少。

如果您想快速开始并且没有任何人使用 Spring XP,那么 IMO Guice 是很好的选择。虽然它的教程较少,但它也更容易让您了解并且教程通常更加集中。

如果您已经有人使用 Spring XP,或者您打算在短期内使用更多 Spring-y 优势,那么 Spring 是很好的选择。

于 2013-10-28T14:30:28.357 回答