3

我经常阅读有关依赖注入的信息,并且对 google 进行了研究,理论上我理解它可以做什么以及它是如何工作的,但我希望看到一个使用它的实际代码库(最好是 Java/guice)。

谁能给我指出一个开源项目,在那里我可以看到它是如何真正使用的?我认为浏览代码并查看整个设置比您在网络上找到的介绍文章中的常用片段更能说明问题。提前致谢!

4

4 回答 4

6

Wave Protocol Server是我最喜欢的示例应用程序。

于 2009-08-22T01:23:50.823 回答
3

我在这个确切的问题上有点挣扎。它是如此抽象和简单,我一直担心我“做错了”。

我一直在依赖于其他项目的主项目中使用它,因为设置绑定的 Guice 模块是主项目的一部分。

我终于意识到图书馆应该自己提供模块。此时,您只能依赖于 Module 的实例(而不是特定的实例)以及由它绑定的接口。

更进一步,您可以使用 Java 6 中新的ServiceLoader机制来自动定位和安装类路径上所有可用的 Guice 模块。然后,您只需更改类路径(db-real.jar 与 db-mock.jar)即可交换依赖项。

于 2009-01-16T03:33:57.500 回答
1

我知道您在 Java 领域,但在 .NET 领域,有几个使用反转控制容器编写的开源应用程序。查看CodeCampServer,其中 UI 模块没有对依赖解析模块的引用。有一个 HttpModule 可以完成这项工作。(HttpModule 只是一个您可以插入的外部库,用于处理 ASP.NET 中的事件,在 CodeCampServer 中,UI 项目在运行时加载此 DependencyRegistrarModule,而无需对其进行任何编译时引用。)

于 2009-01-18T14:08:41.717 回答
-1

我认为如果使用得当,依赖注入有一种从视图中消失的方式,它只是一种初始化/连接你的应用程序的方式——如果它看起来比你可能正在查看手头框架的额外功能更花哨,并且不是简单的依赖注入。

编辑:我建议实际开始使用它而不是尝试查找示例,然后如果您无法像您认为的那样工作,请回来并在此处发布问题 :-)

于 2009-01-15T21:16:18.107 回答