java – 掌握Google Guice

前端之家收集整理的这篇文章主要介绍了java – 掌握Google Guice前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚开始使用Google Guice作为依赖注入框架,并试图将其改造为我最近写的一个中小型项目.我了解Guice如何工作的基础知识,但对某些方法细节有些模糊.例如:

1)模块用于定义绑定,然后将其绑定到注入器中.你倾向于将一切都放在一个模块中,还是倾向于将事情分解成许多较小的模块?

2)您是否在顶层注入了一个注射整个对象树或多个注射器的注射器,仅注射您真正需要注入的依赖项?我在这里考虑我自己的代码库,当然,它有很多的依赖关系,但只有少数几个我需要在测试期间进行控制.

3)我稍微停留在使用仅测试环境的模块而不是生产版本进行系统/集成测试的最佳方式.这个问题很可能是具体的实现,但我很好奇人们使用什么方法.作为参考,我的应用程序是一个基于servlet的网络应用程序.

任何其他指针?

解决方法

1)通常你会把事情分解成多个模块. Guice的目标之一是帮助代码模块化,这就是模块.你如何打破这一切取决于你(显然你绝对不需要).更精细的模块的一个优点是您可以定义特定包中的模块,并使实现接口的类package-private.由于模块在包中,因此可以绑定这些具体类,并可用于配置Injector(在另一个包中).此外,您可以通过将一个模块更改为另一个模块,而不必在单个单个模块中更改代码,从而使您的代码更灵活.

2)是的,顶级注射器一个注射整个物体树是通常应该做的事情.这返回到模块的事情…使用它们将依赖关系分解成组并使用一个注入器.

3)使用不同的入门点类来配置进样器.对于一个独立的应用程序,我会有一个不同的主类…对于webapp,我想你可以单独使用GuiceServletContextListener进行测试.然后,您可以使用模块替换整个模块进行测试,或者使用Modules.override替换特定模块中的绑定等.

原文链接:https://www.f2er.com/java/121826.html

猜你在找的Java相关文章