Как работает подстановка конфигурации Env - PullRequest
0 голосов
/ 23 апреля 2019

Я не могу подставить переменные env в application.properties

Maven зависимость:

<dependency>
    <groupId>com.typesafe</groupId>
    <artifactId>config</artifactId>
    <version>1.3.4</version>
</dependency>

application.properties присутствует в ресурсах test=${FORCED_VARIABLE}

Код:

var config = ConfigFactory.load()
println(System.getenv("FORCED_VARIABLE"))
println(config.resolve().getString("test"))

выход:

test_value
${FORCED_VARIABLE}

Я новичок в мире scala, пожалуйста, подскажите, что я делаю не так

1 Ответ

1 голос
/ 23 апреля 2019

Вам необходимо указать имя файла в методе configFactory.load ()

lazy val configFile = "application.properties"
lazy val config = ConfigFactory.load(configFile)
lazy val variableFromFile: String = config.getString("test")

Если вы видите документацию ConfigFactory для метода load ()

/**
 * Loads a default configuration, equivalent to {@link #load(Config)
 * load(defaultApplication())} in most cases. This configuration should be used by
 * libraries and frameworks unless an application provides a different one.
 * <p>
 * This method may return a cached singleton so will not see changes to
 * system properties or config files. (Use {@link #invalidateCaches()} to
 * force it to reload.)
 *
 * @return configuration for an application
 */
public static Config load() {
    ClassLoader loader = checkedContextClassLoader("load");
    return load(loader);
}

, вы заметите,этот метод load () загружает конфигурацию по умолчанию.Надеюсь, это поможет !!!

...