Play 2.1 애플리케이션이 있습니다. 또한 종속성 주입을 위해 Subcut을 사용하고 있습니다.이 Subcut은 이미 설정되어 있고 응용 프로그램의 대부분의 부분에서 작동합니다 (단 하나만 제외). 지금Subcut으로 Play 애플리케이션에서 Akka 액터를 인스턴스화하기
import akka.actor._
import com.typesafe.plugin._
import play.api.Play.current
import play.api.libs.concurrent.Akka
class FoobarActor extends Actor {
def receive = {
// do stuff here
}
}
object Foobar {
val actor = Akka.system.actorOf(Props[FoobarActor])
}
내가 Subcut를 사용하여 FoobarActor
의 각 인스턴스에 일부 개체를 삽입하고 싶은 말 :
import akka.actor._
import com.typesafe.plugin._
import play.api.Play.current
import play.api.libs.concurrent.Akka
import com.escalatesoft.subcut.inject.{Injectable, BindingModule}
class FoobarActor(implicit val bindingModule: BindingModule) extends Actor
with Injectable {
val bazProvider = inject[BazProvider]
val quuxProvider = inject[QuuxProvider]
def receive = {
// do stuff here
}
}
입니다 : : 어떻게 그런 배우가 인스턴스화이 같은 생성자에 전달 된 BindingModule
와 Injectable
을 확장하는 액터 클래스를, 필요? 일반적 Subcut 의해 관리 객체
는 Subcut의 구성 객체 (즉, NewBindingModule
연장 개체), 또는 재생의 컨트롤러의 경우, Global
객체 (play-subcut on github 참조)로 구성된다.
바인딩 모듈을 전달하기 위해 액터의 인스턴스를 무시하기 위해 무엇을 Akka.system.actorOf(Props[FoobarActor])
으로 대체합니까?
object Foobar {
val actor = /* what goes here? */
}
이미나요 DI에서 Akka 의사를 살펴 보시겠습니까? http://doc.akka.io/docs/akka/2.2.1/scala/actors.html#dependency-injection –
나는 서브 컷에 대해 모른다. 그러나 생성자로'BindingModule'을 제공하는 것만 큼 간단 할 수도있다. 논의. –