播放2.4.x当前的应用环境

时间:2014-10-10 14:48:25

标签: java playframework

是否有任何函数可以返回Play框架应用程序的当前工作环境? 我尝试了以下但它似乎没有正常工作;

String environment = play.api.Play.Mode

注意:我不想使用isDev() isProd()内容,我希望能够创建自定义环境

2 个答案:

答案 0 :(得分:1)

PlayFramework 2.x仅支持3种模式:Prod,Dev和Test。首先用于生产。第二个提供更多的开发添加,如热加载只是编辑类。最后一个就像第二个,但有测试库。

播放1.x还有ID,它可以用作不同的环境。例如,分站服务器的暂存或实例。

Play 2.x遗憾地不再支持ID了。但您可以手动实现相同的效果。

假设您想在“暂存”中运行您的应用程序。模式。 首先,您需要将配置文件与基本配置文件一起放入,但命名为application.staging.conf

第二步是添加Global.scala代码,负责管理配置文件,如下所示:

import java.io.File

import play.api._
import com.typesafe.config.ConfigFactory

object Global extends GlobalSettings {
  override def onLoadConfig(config: Configuration, path: File, classloader:         ClassLoader, mode: Mode.Mode): Configuration = {
    val env = System.getProperty("environment")
    val envConfig = config ++ Configuration(ConfigFactory.load(s"application.${environment}.conf"))
    super.onLoadConfig(environmentSpecificConfig, path, classloader, mode)
  }
}

如您所见,它会读取environment值并查看特定的配置文件。

最后一步是告诉play框架应该使用哪种模式。最好的方法是启动命令:

activator run -Denvironment=staging

应该有效。

答案 1 :(得分:-3)

在Java中,它是play.Application.isDev()和isProd()或isTest()

https://playframework.com/documentation/2.2.x/api/java/index.html