Akka 入门

依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>Seascala</artifactId>
        <groupId>com.sea</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>AkkaDemo</artifactId>


    <dependencies>
        <!--scala -->
        <!-- https://mvnrepository.com/artifact/org.scala-lang/scala-library -->
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>2.13.1</version>
        </dependency>
        <!-- 配置akka actor 依赖-->
        <dependency>
            <groupId>com.typesafe.akka</groupId>
            <artifactId>akka-actor_2.13</artifactId>
            <version>2.6.3</version>
        </dependency>
        <!-- 多进程之间的通信akka actor 依赖-->
        <dependency>
            <groupId>com.typesafe.akka</groupId>
            <artifactId>akka-remote_2.13</artifactId>
            <version>2.6.3</version>
        </dependency>
    </dependencies>
    <build>
        <!--指定源码位置-->
        <sourceDirectory>src/main/scala</sourceDirectory>
        <testSourceDirectory>src/test/scala</testSourceDirectory>
    </build>


</project>

Demo:

package com.sea.f01

import akka.actor.{Actor, ActorRef, ActorSystem, Props}

class SayHelloActor extends Actor {
  override def receive: Receive = {

    case "hello" => println("您好!")
    case "xf" => println("xf  hahhahah!")
    case _ => println("您是?")

  }
}


object SayHelloActorDemo {
  //创建一个ActorSystem  ,专门用于创建actor
  private val actoryFactory = ActorSystem("actoryFactory")
 //创建一个Actor的同时,返回一个actor 的引用actorref
  //说明:
//Props[SayHelloActor]  使用反射创建了一个SayHelloActor 实例
//  "sayHelloActor" 给 actor 取名
//  sayHelloActorActorRef 就是 Props[SayHelloActor]  的ActorRef
  private val sayHelloActorRef: ActorRef = actoryFactory.actorOf(Props[SayHelloActor], "sayHelloActor")



  //test
  def main(args: Array[String]): Unit = {
    //给SayHelloActor 发消息
    sayHelloActorRef ! "xf"
    print("over")
  }


}

猜你喜欢

转载自www.cnblogs.com/lshan/p/12587104.html
今日推荐