我正在为我用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下。是吗?
答案 0 :(得分:3)
使用ConfigFactory,您可以从 src / main / resources 加载 application.conf 文件,不一定需要使用ActorSystem来使用它
根据akka doc http://doc.akka.io/docs/akka/2.4/general/configuration.html
一个简单的测试
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