簡體   English   中英

如何在AKKA中讀取配置

[英]How is configuration read in AKKA

我正在為我用java編寫的akka​​應用程序創建自定義配置,如下所示

application.conf

akka {
  actor {
    debug {
      # enable DEBUG logging of actor lifecycle changes
      lifecycle = on
    }
  }
}

我不知道如何加載此配置。 從文檔中不清楚是否需要在創建actrSystem時顯式加載它,或者在運行jar時它是否需要在類路徑中。 在這兩種情況下,我都可以看一個例子

這是一個maven項目,配置文件在src / main / resources下

我看到applucation.conf存在於target / classes下。 是嗎?

使用ConfigFactory,您可以從src / main / resources加載application.conf文件,不一定需要ActorSystem才能使用它

根據akka doc http://doc.akka.io/docs/akka/2.4/general/configuration.html

  • Akka使用Typesafe配置庫,這也可能是您使用或不使用Akka構建自己的應用程序或庫的良好選擇。 這個庫是用Java實現的,沒有外部依賴; 你應該看看它的文檔(特別是關於ConfigFactory),它只在下面進行了總結。

一個簡單的測試

import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;

public class ConfigFactoryTest {

    public static void main(String[] args) {
        Config conf = ConfigFactory.load("application.conf");
        System.out.println(conf.getString("akka.actor.debug.lifecycle")); //should be 'on'
     }
}

也可以使用withFallback方法http://doc.akka.io/docs/akka/2.4/general/configuration.html#Reading_configuration_from_a_custom_location

假設您有另一個名為fallback.conf屬性文件

akka {
 actor {
    fallback = "fallback"
       }
}

Config fallback = ConfigFactory.load("fallback.conf")
Config conf = ConfigFactory.load("application.conf").withFallback(fallback);
        System.out.println(conf.getString("akka.actor.fallback")); //fallback

在這里你可以找到例子:

https://github.com/typesafehub/config/tree/master/examples/java

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM