3

私は現在、Play2.2 アプリケーションで依存性注入に Scaldi を使用することを検討しています。

Scaldi の Web サイトでドキュメントを読みましたが、不明なのは 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 を統合する方法について、何かアドバイスはありますか?

4

1 に答える 1