欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

scala akka actor —— Hello World

程序员文章站 2022-05-25 23:21:04
...

        最近在学习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?

 

 

相关标签: akka scala hello