Ссылка на значения в конфигурации typesafe

У меня есть файл конфигурации:

app {
    system {
        action-type = "REST"    
    }
}

roles = [${app.system.action-type} "notifier"]

Я хочу, чтобы роли имели значение [ RESTnotifier ], но этот подход дает мне исключение. Какие-либо предложения?

com.typesafe.config.ConfigException$NotResolved: need to Config#resolve() each config before using it, see the API docs for Config#resolve()

person boneash    schedule 20.03.2014    source источник


Ответы (1)


Вам нужно явно вызвать resolve для экземпляра Config, если вы собираетесь использовать замены в конфигурации. Быстрый пример, показывающий это:

import com.typesafe.config.ConfigFactory
import collection.JavaConversions._

object ConfigExample extends App{
  val cfgString = """
    app {
        system {
            action-type = "REST"    
        }
    }

    roles = [${app.system.action-type}"notifier"]        
  """

  val cfg = ConfigFactory.parseString(cfgString).resolve()
  println(cfg.getStringList("roles").toList)
}

Обратите внимание на явный вызов resolve. Это должно решить вашу проблему.

person cmbaxter    schedule 20.03.2014