是否有任何函数可以返回Play框架应用程序的当前工作环境? 我尝试了以下但它似乎没有正常工作;
String environment = play.api.Play.Mode
注意:我不想使用isDev()
isProd()
内容,我希望能够创建自定义环境
答案 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