拆分需要implicit ActorSystem不同檔案的路由的最佳方法是什么?假設我有這個(非作業)代碼
// in UserRoutes.scala
object UserRoutes {
val route: Route = ???
}
// in OrderRoutes.scala
object OrderRoutes {
val route: Route = ???
}
// In MyApp.scala
object MyApp extends App {
implicit val system = ActorSystem(Behaviors.empty, "my-system")
implicit val ec = system.executionContext
val route = UserRoutes.route ~ OrderRoutes.route
Http().newServerAt("localhost", 8888).bind(route)
}
所有這些路由都會發出 HTTP 請求,因此它們需要存在ActorSystem,傳遞它的最佳方法是什么?將物件變成類并將其傳遞給建構式還是有更聰明的方法?
uj5u.com熱心網友回復:
你可以有類似的東西
// in UserRoutes.scala
object UserRoutes {
def route(implicit sys: ActorSystem): Route = ???
}
// in OrderRoutes.scala
object OrderRoutes {
def route(implicit sys: ActorSystem): Route = ???
}
在您的應用程式中,您隱式地擁有演員系統,然后您將能夠保持val route = UserRoutes.route ~ OrderRoutes.route 原樣。
如果我必須使用某些服務,我通常會使用一個類
class UserRoutes(auth: AuthService, profile: ProfileService)(implicit sys: ActorSystem) {
val route : Route = ???
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/358569.html
