如何根据因素选择Google Guice中的模块

时间:2017-09-19 06:15:04

标签: guice

我有一个在两个不同地区工作的应用程序:比如美国和欧盟(欧洲)。我的注射取决于这个Geo。我想两个为各个Geo写两个不同的模块,并且两个Geos都使用一个公共模块。我能够通过使用Profile注释在Spring应用程序中完成此操作但我无法找到任何直接的方法来执行此操作,除非在向Injector添加模块时使用if-else。在Google Guice中有没有更清洁或其他传统方式来实现这一目标?

1 个答案:

答案 0 :(得分:0)

不确定您的是构建时间还是运行时间问题。

使用前者,您希望单个地理模块位于类路径中(加上公共路径)。为了实现这一点,我将研究您的构建系统功能(例如Maven配置文件),以便在编译时为所需的地理位置添加正确的源代码树。

使用后者(运行时),您可能希望使用工厂来创建特定于地理位置的依赖项,可能基于地图绑定器,其键可能是Locales,值可能是特定地理位置的实现。