簡體   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