使用 akka 时的 withFallback 关键字

Tal*_*sar 1 scala akka typesafe-config

模式关键字 withFallback 代表什么以及它是如何使用的。

有人可以帮助使用此语法并提供一些示例。

对 withFallback 的调用如何使用?

object Worker extends App {
  val config =
    (if (args.nonEmpty) ConfigFactory.parseString(s"akka.remote.netty.tcp.port=${args(0)}")
    else ConfigFactory.empty).withFallback(
      ConfigFactory.parseString("akka.cluster.roles = [worker]")).
      withFallback(ConfigFactory.load())

  val system = ActorSystem("ClusterSystem", config)
  val worker = system.actorOf(Props(new Worker), name = "worker")

}
Run Code Online (Sandbox Code Playgroud)

你能提供其他使用它的例子吗?

Cyr*_*pet 5

Akka 使用 typesafe-config lib,而后者又使用 HOCON 格式,用于配置文件。你可以在这里阅读它。

withFallBack 允许合并两个不同的配置,第一个优先于第二个。

例如:

配置文件1

foo.bar = baz
foo.baz = bar
Run Code Online (Sandbox Code Playgroud)

配置文件

bar.baz = foo
foo.baz = foo
Run Code Online (Sandbox Code Playgroud)

然后对于conf = conf1.withFallback(conf2)

conf.getString("foo.bar") == "baz" 
conf.getString("foo.baz") == "bar" 
conf.getString("bar.baz") == "foo" 
Run Code Online (Sandbox Code Playgroud)