【发布时间】:2016-01-25 02:22:42
【问题描述】:
我正在使用 Playframework,而且我是 Akka 世界的新手。我正在尝试从父演员创建一个子演员。子actor依赖于通过guice注入的服务。我无法弄清楚如何实例化这个子actor。
class ParentActor extends UntypedActor{
public static Props props = Props.create(ParentActor.class);
@Override
public void preStart() throws Exception{
// The call here fails. I don't know how i should be creating the child actor
childActor = getContext().actorOf(childActor.props);
childActor.tell(Protocol.RUN, self());
}
public void onReceive(Object msg) throws Exception {
if (msg == AggregateProtocol.DONE){
sender().tell(Protocol.RUN, self());
}
}
}
class ChildActor extends UntypedActor{
private ServiceA serviceA;
public static Props props = Props.create(ChildActor.class);
@Inject
public ChildActor(ServiceA serviceA){
this.serviceA = serviceA
}
public void onReceive(Object msg) throws Exception {
if (msg == Protocol.RUN){
serviceA.doWork();
sender().tell(Protocol.DONE, self());
}
}
}
注意:我还尝试了使用工厂和辅助注入的方法,如 Play Java akka 文档中所述。
我如何让这个东西工作?我也看过 IndirectProducer 和 Creator 方法,但我无法很好地理解文档。
【问题讨论】:
-
Play 有一个关于如何将依赖注入与演员一起使用的综合文档:playframework.com/documentation/2.4.x/…
标签: playframework akka playframework-2.4