如何使用Scaldi Conditions进行默认绑定

时间:2017-02-11 14:41:20

标签: scala dependency-injection playframework-2.0 slick scaldi

我在我的应用程序中使用Scaldi和Play and Slick。

我需要根据某些条件将DatabaseConfig依赖项绑定到不同的配置。

  • Mode = Dev => Oracle DB
  • 模式= UAT =>另一个Oracle DB ...
  • Mode = Test =>本地H2 DB
  • 未指定模式=>与Mode = Test
  • 相同

我如何处理最后一部分?我尝试了以下操作,但它不起作用。

  val inDevMode = SysPropCondition(name = "mode", value = Some("dev"))
  val inTestMode = SysPropCondition(name = "mode", value = Some("test")) or SysPropCondition(name = "mode", value = None)

  bind [DatabaseConfig[JdbcProfile]] when (inDevMode) to new DbConfigHelper().getDecryptedConfig("gem2g") destroyWith (_.db.close)
  bind [DatabaseConfig[JdbcProfile]] when (inTestMode) to DatabaseConfig.forConfig[JdbcProfile]("h2") destroyWith (_.db.close)

1 个答案:

答案 0 :(得分:0)

val inTestMode = SysPropCondition(name = MODE,value = Some(" test"))或SysPropCondition(name = MODE,value = None)或     条件(System.getProperty(MODE)== null)