如何使用Scaldi注入Akka路由器?

时间:2017-04-11 19:49:43

标签: scala akka scaldi

我正在使用Akka配置创建路由器。

val router = context.actorOf(FromConfig.props(MyActor.props), "router")

我想对路由器所在的Actor进行单元测试,并且能够将路由器注入到Actor中会有所帮助。

是否可以使用Scaldi注入此路由器?我知道在Scaldi模块中我可以使用new进行绑定。

binding toProvider new OrderProcessor

但我似乎无法找到一种从config创建绑定的方法。

1 个答案:

答案 0 :(得分:1)

可以注入属性。 在Module

binding identifiedBy "props-from-config" to FromConfig.props(MyActor.props)

在Actor中注入道具并创建演员。

private val propsFromConfig = inject[Props]("props-from-config")
val router: ActorRef = context.actorOf(propsFromConfig, "router")

然后在单元测试中绑定任何道具。 Actor正在使用props创建一个actor,并且不知道道具来自config。