是否可以在UntypedActor中注入控制器类? 连接到控制器类的最佳方法是什么?
package actors;
import akka.actor.UntypedActor;
import dispatchers.PushNotificationDispatcher;
import play.Logger;
import javax.inject.Inject;
import java.util.List;
public class PushNotificationActor extends UntypedActor {
@Inject
PushNotificationDispatcher dispatcher;
@Override
public void onReceive(Object message) throws Exception {
Logger.debug("PushNotificationActor started");
dispatcher.createAndSendReminderPushNotification();
Logger.debug("PushNotificationActor finished");
}
}
答案 0 :(得分:0)
我认为像你写的那样做不可能......演员是封装的类。最好的选择是检查此代码是否有效但IMO不会......
您可以尝试通过以下参数传递此注入:
Props props2 = Props.create(MyActor.class, your params);
答案 1 :(得分:0)
是的,可以将实例注入您的Actor。
使用Play 2.4 ,它可以正常运行out of the box,就像在正常课程中一样注入。
我总是注入构造函数,例如JPAApi:
public class MyActor extends UntypedActor {
private final JPAApi jpa;
@Inject
public MyActor(JPAApi jpa) {
this.jpa = jpa;
}
@Override
public void onReceive(Object msg) throws Exception {
...
}
}