2017-01-28 4 views
1

モジュールを使わずにサービスやAkkaアクタを挿入できるようです。モジュールの目的は何か分かりますか?でもそれ以下なしscaldiモジュールの目的は何ですか?

class Hello(implicit inj:Injector) extends Controller with AkkaInjectable { 
    val greetingService = inject[GreetingService] 
    implicit val system = inject [ActorSystem] 
    val greetingActor = injectActorRef[greetingActor] 

    def greet(person:Person) = Action { 
    Ok(greetingService.greet(person.name)) 
    } 
} 

class MainModule extends Module { 
    binding to new GreetingService 
    bind [ActorSystem] to ActorSystem("ScaldiAkkaExample") destroyWith (_.terminate()) 
    binding toProvider new StatisticsProvider 
} 
+0

目的はどのモジュールですか? – Mysterion

+0

http://scaldi.org/learn/#module – laiboonh

+0

申し訳ありませんが、私はあなたの質問をまだ受け取りません。あなたはスカッディが好きじゃない?あなたはscaldiでModuleをどのように使用するかを理解していませんか? – Mysterion

答えて

2

モジュールは、基本的なサービスをインスタンス化し、あなたのコントローラにそれらを注入する場合、すべてのコントローラは、(私たちが望むものである)同じインスタンスを共有するだけで正常に動作します。 モジュール内のバインディングを宣言することなく、すべてのコントローラにサービスの新しいインスタンスがあります(これは私たちが望むものではありません)。私は俳優がバインドされているかを指摘したいと思いscaldi

からその反対

引用アッカでしかし

。 toProvider関数でバインドすることは重要です。 Scaldiは、injectActorRefまたはinjectActorPropsを注入すると、常にActorクラスの新しいインスタンスを作成します。

関連する問題