Java Guice多数据库自动切换
我有三个数据库共同语言Java Guice多数据库自动切换,java,guice,Java,Guice,我有三个数据库共同语言 单元测试环境的本地数据库 开发环境的测试数据库 产品环境在线数据库 如何根据环境自动注入不同的db属性 通过将xml与spring结合使用,我可以使用maven概要文件和资源 筛选功能以完成此工作 guice的解决方案是什么?在最简单的情况下,您可以在模块中使用binder.bindcontent(),如下所示: bindConstant().annotatedWith(Names.named("user.name")).to(System.getProperty("us
guice的解决方案是什么?在最简单的情况下,您可以在
模块中使用binder.bindcontent()
,如下所示:
bindConstant().annotatedWith(Names.named("user.name")).to(System.getProperty("user.name"));
@Inject @Named("user.name")
private String userName;
您可以这样使用:
bindConstant().annotatedWith(Names.named("user.name")).to(System.getProperty("user.name"));
@Inject @Named("user.name")
private String userName;
如何在程序开始时设置系统属性取决于您
另一种类似的方法是实用方法cNames.bindProperties(Binder,Map)
,您可以在其中一次性设置任意属性。在最简单的情况下,您可以在模块中使用Binder.bindcontent()
,如下所示:
bindConstant().annotatedWith(Names.named("user.name")).to(System.getProperty("user.name"));
@Inject @Named("user.name")
private String userName;
您可以这样使用:
bindConstant().annotatedWith(Names.named("user.name")).to(System.getProperty("user.name"));
@Inject @Named("user.name")
private String userName;
如何在程序开始时设置系统属性取决于您
另一种类似的方法是实用方法cNames.bindProperties(Binder,Map)
,您可以在其中一次性设置任意属性。启动jvm时我是否应该传递-Duser.name?@jilen这是一种可能的方法。但是如果我使用的是Jetty/Tomcat,我真的不想更改Jetty.sh/startup.sh。我如何将环境传递到我的应用程序?您提到的maven配置文件如何工作?我假设加载一些给定的属性文件并将其放入spring上下文中。所以你对guice也是这样。但是您必须自己加载属性文件,并将其放入我在代码中提到的映射中。我使用mvn clean package-prelese/-Pdevelopment来激活配置文件。并将发布配置文件设置为默认激活状态!当我启动jvm时,我应该传递-Duser.name吗?@jilen这是一种可能的方式。但是如果我使用的是Jetty/Tomcat,我真的不想更改Jetty.sh/startup.sh。我如何将环境传递到我的应用程序?您提到的maven配置文件如何工作?我假设加载一些给定的属性文件并将其放入spring上下文中。所以你对guice也是这样。但是您必须自己加载属性文件,并将其放入我在代码中提到的映射中。我使用mvn clean package-prelese/-Pdevelopment来激活配置文件。并将发布配置文件设置为默认激活状态!