访问游戏!application.conf中的2.0配置变量?

cro*_*ies 80 playframework-2.0

以前在Play!v1很容易定义配置变量application.conf,然后像这样访问它们:

play.configuration("db.driver")
Run Code Online (Sandbox Code Playgroud)

但是现在我在文档中找不到任何关于v2中类似用途或适当替代方案的内容.这样做的方法是什么?

Ale*_*rju 115

与此相当的Play 2.0 Scala将是:

Play.current.configuration.getString("db.driver")
Run Code Online (Sandbox Code Playgroud)

你也需要 import play.api.Play

完整的文档就在这里.

  • 请注意,根据具体情况,您无法假设应用程序尚未启动,或者您不需要应用程序直到此部分代码; 你可以使用`play.api.Play.maybeApplication.map(_ .configuration.getString("db.driver"))` (15认同)
  • 这在Play 2.5中已弃用.请参阅[迁移指南](https://www.playframework.com/documentation/2.5.x/Migration25#Deprecated-play.Play-and-play.api.Play-methods) (6认同)

vla*_*man 57

适用于Play 2.0 - 在Java控制器中,您可以使用以下命令:

String optionValue = Play.application().configuration().getString("db.driver");
Run Code Online (Sandbox Code Playgroud)

在视图中获取变量,请使用:

@play.Play.application().configuration().getString("db.driver")
Run Code Online (Sandbox Code Playgroud)


Ali*_*ani 34

截至Play 2.5,play.api.Play.current已弃用.您应该使用依赖注入来注入EnvironmentConfiguration使用它来读取配置值:

class HomeController @Inject() (configuration: play.api.Configuration) extends Controller {
  def config = Action {
    Ok(configuration.underlying.getString("db.driver"))
  }
}
Run Code Online (Sandbox Code Playgroud)

查看Play文档以获取更详细的讨论.

  • 感谢您提供最新的答案.我将此标记为未来Play用户的正确答案!2.X (5认同)

Ton*_*Day 21

Play 2.3.2 for Java中,您可以使用以下com.typesafe.config.ConfigFactory选项:

Config conf = ConfigFactory.load();
String myFooBarConfiguration = conf.getString("foo.bar");
Run Code Online (Sandbox Code Playgroud)

快速移动的API!


小智 6

Play 2.3 [.8]/Java中测试的另一种方法是从application.conf访问值:

要检查Play版本,请检查文件项目/插件.包含"sbt-plugin"的行应该具有类似"2.3.8"的版本规范.

例如,如果application.conf包含行

myConfigStringValue=abc
myConfigBooleanValue=true
Run Code Online (Sandbox Code Playgroud)

可以从java文件/类中查询这些值

import play.Configuration;
...
String myString = Configuration.root().getString("myConfigStringValue");
Boolean myBoolean = Configuration.root().getBoolean("myConfigBooleanValue");
Run Code Online (Sandbox Code Playgroud)

如果找不到值,则get ...方法返回null,还有get ...方法将默认值作为参数.

有关详细信息,请参阅 https://www.playframework.com/documentation/2.3.x/api/java/index.html

并检查课程播放.配置.


cmd*_*cmd 5

在Play Scala 2.3.x和2.4.x中,要读取值conf/application.conf,您可以执行以下操作:

import play.api.Play.current
...
current.configuration.getString("db.driver")
Run Code Online (Sandbox Code Playgroud)


db8*_*b80 5

在 Java 中 play > 2.5.X 中,您可以通过 ConfigFactory 帮助器读取配置值:

ConfigFactory.load().getString("redis.url")
Run Code Online (Sandbox Code Playgroud)

或者

ConfigFactory.load().getInt("redis.port")
Run Code Online (Sandbox Code Playgroud)

对象Config会将参数转换为正确的类型。它公开了处理任何 java 类型的方法(getDouble、getLong 等)

文档: https://www.playframework.com/documentation/2.5.0/api/java/play/Configuration.html