繁体   English   中英

如何在application.conf上引用.properties值

[英]How to reference .properties value on application.conf

我有一个使用自定义actor系统的J2EE应用程序,我需要外化一些自定义配置。

有没有办法做到这一点? 由于application.conf始终在classpath上,无论如何我可以加载外部custom.properties文件并使用它如下所示

ActorSystem.akka.remote.netty.hostname = "${custom.ip}"
ActorSystem.akka.remote.netty.port = "${custom.port}"

我不完全确定你的约束是什么,但原则上你有几个选择:

  1. 您可以在创建actor系统时为其提供硬编码配置 ,如下所示:

     Map configMap = new HashMap(); configMap.put("akka.remote.netty.hostname", custom.ip); configMap.put("akka.remote.netty.port", custom.port); Config config = ConfigFactory.parseMap(configMap).withFallback(ConfigFactory.load()); ActorSystem system = ActorSystem.create("ActorSystem", config); 
  2. 您可以通过代码: ConfigFactory.load("custom.conf")或通过设置系统属性-Dconfig.resource=custom.conf并在custom.conf包含application.conf来加载自定义配置文件而不是application.conf , 像这样:

     include "application" akka.remote.netty.hostname = "custom-ip" akka.remote.netty.port = "custom-port" 
  3. 您还可以提供自定义端口和IP直通系统属性,并使用默认值(如果未定义)。 在这种情况下, application.conf看起来像这样:

     akka.remote.netty.hostname = "default-ip" akka.remote.netty.port = "default-port" akka.remote.netty.hostname = "${?custom.ip}" akka.remote.netty.port = "${?custom.port}" 
  4. 或者,您可以在application.conf文件中包含custom.properties 如果custom.properties不存在,则将以静默方式忽略。 application.conf

     akka.remote.netty.hostname = "default-ip" akka.remote.netty.port = "default-port" include "custom" 

    custom.properties

     akka.remote.netty.hostname = "custom-ip" akka.remote.netty.port = "custom-port" 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM