我正在将 Spray 用于 REST 端点。
如何访问特征中现有的 ActorSystem
我不想在我的特征中创建一个新的 ActorSystem (如果可能的话),而是重用我现有的 ActorSystem 。我正在使用 this Redis 客户端库。

trait MySprayService extends HttpService with Json4sSupport {

   //the following line requires an implicit ActorSystem
   val redis = RedisClient(ip,port)
   ....
   ....
   val simpleRoute = path("simple" / "route") {
       get {
          complete {
             //use Redis here
          }
       }
   }

}

最佳答案

您可以创建返回 ActorSystem 的抽象方法,然后在将扩展此特征的类中交付实现。

trait MySprayService extends HttpService with Json4sSupport {

       implicit def as: ActorSystem
       //the following line requires an implicit ActorSystem
       val redis = RedisClient(ip,port)
       ....
       ....
       val simpleRoute = path("simple" / "route") {
           get {
              complete {
                 //use Redis here
              }
           }
       }

    }

关于scala - 在 trait 中访问现有的 ActorSystem,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25472019/

10-10 11:22