Недавно я обновил платформу Play до версии 2.4, и у меня возникла проблема с управлением конфигурацией.
Раньше я использовал основной файл application.conf
и специальные файлы конфигурации application.dev.conf
и application.prod.conf
для переопределения некоторых значений конфигурации.
Однако в новой версии кажется, что конфигурация неправильно объединена. Я использую следующий ApplicationLoader, как показано в документации а>:
package config
import com.typesafe.config.ConfigFactory
import play.api.{Logger, ApplicationLoader, Configuration}
import play.api.inject._
import play.api.inject.guice._
class CustomApplicationLoader extends GuiceApplicationLoader {
override def builder(context : ApplicationLoader.Context) = {
val mode = context.environment.mode.toString
val extraConfName = s"application.${mode.toLowerCase}.conf")
val extra = Configuration(ConfigFactory.load(extraConfName))
initialBuilder
.in(context.environment)
.loadConfig(extra ++ context.initialConfiguration)
.overrides(overrides(context): _*)
}
}
И я добавил этот загрузчик классов в свой файл application.conf
:
play.application.loader = "config.CustomApplicationLoader"
Но в окончательной конфигурации учитываются только значения из application.conf
. Любая идея о том, откуда это могло взяться?