`

scala akka actor —— Hello World

阅读更多

        最近在学习scala语言,顺便看了下scala应用的最漂亮的开源项目之一:Akka,关于Akka是什么东西,Google一下,下面记录一个Hello World的例子学习一下简单的收发消息

 

1. 创建scala maven项目,按照 http://tbwuming.iteye.com/blog/2070053的操作即可

 

2. maven依赖

<akka.version>2.3.2</akka.version>

<dependency>
	<groupId>com.typesafe.akka</groupId>
	<artifactId>akka-actor_2.10</artifactId>
	<version>${akka.version}</version>
</dependency>

 

3. 首先创建一个HelloActor,从Actor继承而来,需要实现receive方法,用来接收消息,如果是字符串hello则打印消息来源和名字,如果是其他的则打印 huh?

 

import akka.actor.ActorRef
import akka.actor.Actor
 
class HelloActor(name: String) extends Actor {
  def receive = {
    case "hello" => println("Hello from %s".format(name))
    case _ => println("%s, huh?".format(name))
  }
}

 

 

4. 创建一个main,首先创建一个ActorSystem来初始化系统,然后使用actorOf来创建一个Actor的实例,创建实例之后就可以发送消息了,! 是发送消息的符号,

 

import akka.actor.ActorSystem
import akka.actor.Props

object HelloMain extends App {
  val system = ActorSystem("HelloSystem")
  // 如果HelloActor不带构造参数,这可以这么使用
  // val helloActor = system.actorOf(Props[HelloActor], name = "helloactor")
  
  // HelloActor带构造参数的
  val helloActor = system.actorOf(Props(new HelloActor("Jimmy")), name = "helloactor")
  helloActor ! "hello"
  helloActor ! "buenos dias"
}

 

5. 运行 Run As -> Scala Application 就可以了,输出结果如下:

Hello from Jimmy

Jimmy, huh?

 

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics