创建隐含在构造函数中的akka​​ actor

ecy*_*hor 3 scala akka

是否有可能创建一个在构造函数中有隐含的akka​​ actor?有:

class Actor(parameter: Long)(implicit service:Service)
Run Code Online (Sandbox Code Playgroud)

class Service
Run Code Online (Sandbox Code Playgroud)

我可以使用上下文来创建这样的actor吗?

implicit val service:Service = new Service()
val someLong = 3
context.actorOf(FromConfig.props(Props(classOf[Actor], someLong)), "actor")
Run Code Online (Sandbox Code Playgroud)

提到服务不能传递给构造函数,因为可以接收多个不同的actor类,它们使用范围的不同含义.

cur*_*ous 13

在Actor的Companion对象中定义Props,适用于注入依赖项.

class SomeActor(parameter: Long)(implicit service:Service) extends Actor {
    def receive = {
         case message => // Do your stuff
      }
}

object SomeActor {
   def props(parameter: Long)(implicit service:Service) = Props(new SomeActor(parameter))
}

implicit val service:Service = new Service()
val someLong = 3
val ref = context.actorOf(SomeActor.props(someLong)), "actor")
Run Code Online (Sandbox Code Playgroud)

你可以在这里阅读更多关于依赖注入的内容:http : //doc.akka.io/docs/akka/snapshot/scala/actors.html#Dependency_Injection http://letitcrash.com/post/55958814293/akka-dependency-injection