Как использовать печатные актеры в Лагоме (Java)? - PullRequest
0 голосов
/ 10 февраля 2020

Я использую Lagom 1.6.x, который построен на Play Framework 2.8.x.

Lagom do c объясняет, как использовать классных c актеров, но не напечатанные. Согласно примечаниям к выпуску 1008 * это должно быть возможно. Когда я просто @Inject akka.actor.typed.ActorSystem в классе в Lagom, то Guice жалуется: «Нет реализации для akka.actor.typed.ActorSystem был связан». Инъекция classi c akka.actor.ActorSystem работает отлично.

Play do c объясняет 2 подхода, которые приводят к множеству церемониальных шаблонов кода:

  1. «Внедрение зависимостей во время компиляции», которое использует extends BuiltInComponentsFromContext для получения ActorSystem. См. здесь .
  2. «Внедрение зависимостей во время выполнения», которое использует «типизированные» методы в AkkaGuiceSupport с провайдерами Guice. Смотрите здесь .

Мне удалось породить типизированного Актера с akka.actor.typed.javadsl.Adapter и классом c ActorSystem. Комментарий Java do c к методу spawn гласит: «Создайте данное поведение как дочерний элемент пользователя в классе c ActorSystem», но я не знаю, будет ли это нормально запустить.

import akka.actor.ActorSystem;
import akka.actor.typed.javadsl.Adapter;

@Inject
public SomeClass(ActorSystem actorSystem) {
    super(actorSystem);
    ActorRef<SayHello> helloActor = Adapter.spawn(actorSystem, HelloActor.create(), "hello-actor");
    helloActor.tell(new SayHello("Bob"));
}

Так это нормально или это вызовет проблемы позже?

Спасибо за любые предложения.

...