在 Spring 中,如果我想拥有一组用于生产的对象,另一组用于本地开发/测试。我可以使用@Profile
注解来指定不同的类,并在启动应用程序时通过提供系统属性在它们之间切换。
Guice 中是否有类似的东西,或者我是否需要自己手动检查一些属性并在引导我的时加载一组不同的模块Injector
?
您需要自己识别环境,并选择在哪个环境中应用哪些模块,但您确实可以访问Modules.override
专门覆盖某些绑定,而无需创建大量模块变体。明智地使用它——如果您覆盖许多绑定或在不可预测的地方,很容易让您的模块纠缠不清。