[英]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}"
我不完全確定你的約束是什么,但原則上你有幾個選擇:
您可以在創建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);
您可以通過代碼: 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"
您還可以提供自定義端口和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}"
或者,您可以在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.