我想为每种模式(Dev,Prod,Test)加载不同的配置文件,所以我写了以下内容.
class CustomApplicationLoader extends GuiceApplicationLoader {
override protected def builder(context: Context): GuiceApplicationBuilder = {
Logger.info("CUSTOMBUILDER")
val builder = initialBuilder.in(context.environment).overrides(overrides(context): _*)
val mode = context.environment.mode
val configFile = s"application.${mode.toString.toLowerCase}.conf"
Logger.info("Using config file: %s".format(configFile))
val config = Configuration(ConfigFactory.load(configFile))
builder.loadConfig(config ++ context.initialConfiguration)
}
}
Run Code Online (Sandbox Code Playgroud)
在我的application.conf文件中
play.application.loader = "modules.CustomApplicationLoader"
Run Code Online (Sandbox Code Playgroud)
这在Prod和Dev模式下完美地工作,但在测试模式下不能.在测试模式下,永远不会触发Logger.info("CUSTOMBUILDER").
我似乎无法在文档中找到有关为什么这在测试模式下不起作用的任何内容.任何有助于使其在测试模式下工作或确定问题根源的帮助将不胜感激.