播放框架上的部分参数列表注入

partial parameter list injection on play framework

给定一个 class

class Foo @Inject()(cfg: Config, private val emr: AmazonElasticMapReduce = AmazonElasticMapReduceClientBuilder.defaultClient())
                             (implicit actorSystem: ActorSystem, ec: ExecutionContext) 

play 框架在尝试注入 'emr' 值时失败。

我不想玩注入它,而是想使用默认值。 可以定义吗?

您需要添加到您的 Module.scala:

bind(classOf[AmazonElasticMapReduce]).toInstance(AmazonElasticMapReduceClientBuilder.defaultClient()).asEagerSingleton()

而不是试图将它提供给构造函数。

如果您根本不想注入它,您可以将它作为 class 中的成员。