Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Guice多数据库自动切换_Java_Guice - Fatal编程技术网

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

我有三个数据库共同语言

  • 单元测试环境的本地数据库
  • 开发环境的测试数据库
  • 产品环境在线数据库
  • 如何根据环境自动注入不同的db属性

    通过将xml与spring结合使用,我可以使用maven概要文件和资源 筛选功能以完成此工作


    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来激活配置文件。并将发布配置文件设置为默认激活状态!