如何在AKKA中读取配置

时间:2017-01-18 20:26:09

标签: java maven configuration 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下。是吗?

1 个答案:

答案 0 :(得分:3)

使用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