依赖:
<?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") } }