转载:https://blog.csdn.net/liubenlong007/article/details/53782971
本示例来自于官方示例(http://doc.akka.io/docs/akka/2.4.4/intro/getting-started.html):
文中找到 Using Akka with Maven 。点击“Akka Main in Java”下载示例。
http://www.lightbend.com/activator/template/akka-sample-main-java
注意:新版本的akka需要使用jdk8
里面有两个Actor:
package sample.hello;
import akka.actor.Props;
import akka.actor.UntypedActor;
import akka.actor.ActorRef;
public class HelloWorld extends UntypedActor {
@Override
public void preStart() {
// create the greeter actor
final ActorRef greeter = getContext().actorOf(Props.create(Greeter.class), "greeter");
// tell it to perform the greeting
greeter.tell(Greeter.Msg.GREET, getSelf());
}
@Override
public void onReceive(Object msg) {
if (msg == Greeter.Msg.DONE) {
// when the greeter is done, stop this actor and with it the application
getContext().stop(getSelf());
} else
unhandled(msg);
}
}
package sample.hello;
import akka.actor.UntypedActor;
public class Greeter extends UntypedActor {
public static enum Msg {
GREET, DONE;
}
@Override
public void onReceive(Object msg) throws InterruptedException {
if (msg == Msg.GREET) {
System.out.println("Hello World!");
Thread.sleep(1000);
getSender().tell(Msg.DONE, getSelf());
} else
unhandled(msg);
}
}
main方法
package sample.hello;
public class Main {
public static void main(String[] args) {
akka.Main.main(new String[] { HelloWorld.class.getName() });
}
}
另一种main写法,通过创建actor的方式
public static void main(String[] args) {
ActorSystem system = ActorSystem.create("Hello");
ActorRef a = system.actorOf(Props.create(HelloWorld.class), "helloWorld");
System.out.println(a.path());
}
helloWord示例比较简单,不过多解释