Scala Guice 传递参数

标签 scala guice

我有以下 Guice 绑定(bind):

val profile = "dev";
bind[DbClient].annotatedWith(Names.named("postgres")).to[PostgresClient].in[Singleton]

我想将 profile 作为参数传递给 PostgresClient 实例。请指教 如何使用 Guice 和 Scala 来实现它。

最佳答案

您可以使用@Provides(此处描述:https://github.com/google/guice/wiki/ProvidesMethods)

并手动构建您的 DbClient

  @Provides
  @Singleton
  @Named("postgres")
  def provideDbClient(): DbClient = {
    new PostgresClient("dev")
  }

我还没有尝试过@Singleton - 但其余的我们经常使用。

关于Scala Guice 传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55863412/

相关文章:

java - Guice 和非单例 Servlet

binding - 组织 Guice 绑定(bind)配置的解决方案

google-app-engine - 带有 Google Cloud Endpoints 和 Guice 的 Appengine

java - Guice 的 Names.bindProperties(Binder, Properties) 的 CDI (Weld) 等价物是什么?

java - 从提供的目录中的文件名创建字符串列表

scala - 让 Future 值进入不接受 future 的案例类构造函数的最佳方法是什么?

scala - 为混合特性的所有类构建操作

Scala - 使用匿名函数简写进行连续的 map() 调用

java - 使用 guice 在 java 中创建 Singleton

scala - 如何在 Flink 中使用多个计数器