我有三个数据库共配置
- 用于单元测试环境的本地数据库
- 开发环境的测试数据库
- 产品环境在线数据库
如何根据环境自动注入不同的数据库属性?
通过将 xml 与 spring 一起使用,我可以使用 maven 配置文件和资源过滤器功能来完成这项工作。
guice 的解决方案是什么?
在最简单的情况下,您可以binder.bindConstant()
像Module
这样使用:
bindConstant().annotatedWith(Names.named("user.name")).to(System.getProperty("user.name"));
你像这样使用它:
@Inject @Named("user.name")
private String userName;
如何在程序开始时设置系统属性取决于您。
另一种但类似的方法是实用方法cNames.bindProperties(Binder, Map<String, String>)
,您可以一次性设置任意属性。