Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用依赖注入w/guice浏览源代码的项目?_Java_Dependency Injection_Design Patterns_Guice - Fatal编程技术网

Java 使用依赖注入w/guice浏览源代码的项目?

Java 使用依赖注入w/guice浏览源代码的项目?,java,dependency-injection,design-patterns,guice,Java,Dependency Injection,Design Patterns,Guice,我经常读到关于依赖注入的文章,我对google做过研究,我从理论上理解它能做什么以及它是如何工作的,但我希望看到一个实际的代码库使用它(最好是Java/guice) 有谁能告诉我一个开源项目,在那里我可以看到它是如何被真正使用的?我认为浏览代码并查看整个设置比您在web上找到的介绍文章中常见的片段更能说明问题。提前谢谢 我认为依赖注入有一种从视图中消失的方式,如果使用得当,它将只是一种初始化/连接应用程序的方式——如果它看起来比你可能看到的更奇特,那么你可能看到的是手边框架的额外功能,而不是赤裸

我经常读到关于依赖注入的文章,我对google做过研究,我从理论上理解它能做什么以及它是如何工作的,但我希望看到一个实际的代码库使用它(最好是Java/guice)


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

我认为依赖注入有一种从视图中消失的方式,如果使用得当,它将只是一种初始化/连接应用程序的方式——如果它看起来比你可能看到的更奇特,那么你可能看到的是手边框架的额外功能,而不是赤裸裸的依赖注入


编辑:我建议你真正开始使用它,而不是试图寻找例子,如果你不能像你认为的那样让东西正常工作,那么就回来在这里发问:-)

我在这个问题上有点纠结。它是如此抽象和简单,我总是担心我是“做错了”

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

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


更进一步,您可以使用Java6中的新机制自动定位并安装类路径上可用的所有GUI模块。然后,您可以通过更改类路径(db-real.jar与db mock.jar)来交换依赖项。

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

这是我最喜欢的示例应用。

这只是一个不输出任何好示例的借口。说真的,鉴于Java社区的规模,没有人在开源领域教授这些东西?对于真正的“教学”,我建议买一本书(我是为了学习spring而做的)。我的观点仅仅是依赖注入并不是一个大主意,它实际上是由一个特殊的应用程序演示的。