我目前正在探索在 Play2.2 应用程序中使用 Scaldi 进行依赖注入。
我已经阅读了 Scaldi 网站上的文档,但我不清楚如何将它与 Akka 一起使用。
到目前为止,我的项目中有什么:
Models/ (Daos and case classes)
User.scala
Services/ (Akka Actors)
UserService.scala
ProfileService.scala
Managers/ (Regular Manager Classes)
UserManager.scala (The Trait Interface)
UserManagerImpl.scala (An actual implementation)
UserManagerMock.scala (Mocked version)
etc..
在 UserService.scala 中,我将使用 UserManager 的一个实例来完成这项工作:
class UserService extends ServiceActor with Injection
{
val userManager = inject[UserManager]
def receive = {
case Register(email: String, password: String)
}
}
object UserService extends Service
{
case class Register(email: String, password: String)
override protected val actorRef = Akka.system.actorOf(Props[UserService].withRouter(SmallestMailboxRouter(resizer = Some(resizer))))
}
然后根据注入的经理,如果将所有工作委托给经理,演员可能会被嘲笑?
但是,如果管理器需要调用其他只是伴随对象的服务怎么办?或者服务调用也通过伴随对象引用的其他服务?
有人对如何将 Akka 与 Scaldi 集成有一些指示吗?