【问题标题】:Create akka actor that has implicit in constructor创建在构造函数中隐含的akka​​ actor
【发布时间】:2015-09-29 22:45:32
【问题描述】:

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

class Actor(parameter: Long)(implicit service:Service)

class Service

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

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

顺便提一下,服务不能传递给构造函数,因为可以接收多个不同的actor类,它们使用范围中的不同隐式。

【问题讨论】:

    标签: scala akka


    【解决方案1】:

    在 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")
    

    您可以在此处阅读有关依赖注入的更多信息: http://doc.akka.io/docs/akka/snapshot/scala/actors.html#Dependency_Injection http://letitcrash.com/post/55958814293/akka-dependency-injection

    【讨论】:

      猜你喜欢
      • 2015-07-16
      • 2018-07-17
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      • 2018-07-18
      • 1970-01-01
      • 1970-01-01
      • 2015-05-07
      相关资源
      最近更新 更多