2017-01-28 7 views
1

Кажется, что я могу вводить Услуги или Акку Актеры без использования модуля. Могу ли я узнать, что является целью модуля?Какова цель модуля 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? вы не понимаете, как использовать модуль в scaldi? – Mysterion

ответ

2

модуль в основном конкретизирует услуги и когда Вы вводите их в контроллерах, все контроллеры одни и те же экземпляр (что мы хотим). Без объявления привязок в модуле у вас будет новый экземпляр службы на каждом контроллере (чего мы не хотим).

Однако в Акку Сво напротив

Цитата scaldi

Я хотел бы указать на то, как актер связаны. Важно, чтобы вы связывали их с функцией toProvider. Он будет следить за тем, чтобы Scaldi всегда создавал новые экземпляры классов Actor, когда вы вводите им инъекцию или инъекциюActionProps

 Смежные вопросы

  • Нет связанных вопросов^_^