我正在编写一个 Akka 微内核应用程序,并希望它使用java.net.InetAddress.getLocalHost.getHostAddress
. 如果此调用成功,那么我将使用属性的地址akka.remote.netty.hostname
,但如果不是,我将回退到application.config
.
System.setProperty("akka.remote.netty.hostname", addr)
如Akka docsSimpleClusterApp
中所示,这可以正常工作。
当我想首先检查是否在 application.config 中设置了其他键时,问题就来了。例如,以下将无法覆盖主机地址,因为(我认为)初始调用ConfigFactory.load()
意味着后面的System.setProperty
which 无效。
if(ConfigFactory.load().getBoolean("my-app.do-something")){
//Do some stuff, then change the host address
Try{
java.net.InetAddress.getLocalHost.getHostAddress
} match {
case Success(addr) =>
System.setProperty("akka.remote.netty.hostname", addr)
case Failure(_) =>
}
}
我必须使用单独的配置文件来配置我自己的应用程序,还是有其他方法可以解决上述问题?