Scaldi:找不到typesafe配置中定义的绑定

时间:2017-01-26 21:38:25

标签: typesafe-config scaldi

这是问题所在。假设我有两个可变模块:

class DbModule extends Module {   bind[JdbcBackend#Database] toProvider
    inject[JdbcDriver].backend.Database.forURL(
      inject[String]("db.url"),
      inject[String]("db.username"),
      inject[String]("db.password"), null,
      inject[String]("db.driver")
    ) }

这是相应的配置:

资源/ application.conf:

db {  url="postgres url"  username="db_user"  password="db_password"  driver="cc"  }

我在代码中的某处:

implicit val inj = TypesafeConfigInjector() :: new AppModule

但是这个注射器给出了以下例外:

caldi.InjectException: No binding found with following identifiers:  
* TypeTagIdentifier(String)   * StringIdentifier(db.url)

1 个答案:

答案 0 :(得分:1)

Scaldi的顺序很重要:绑定从左到右解决。

::运算符as stated in the docs通过反转操作数组成两个注入器。因此,在您的情况下,首先解析AppModule,因此无法找到注入的配置参数。

要解决您的问题,请使用++运算符使喷油器保持正常运行。

我希望这有用。