无法创建配置对象

问题描述 投票:1回答:1

我想在代码中创建以下配置。

mail{
  signupUrl = "/test/ws/users/signup/"
  signupFrom="Test<[email protected]>"
  signupReply="Test<[email protected]>"

}

我尝试了以下两种方法,但我遇到了错误

尝试1. API(https://www.playframework.com/documentation/2.6.x/api/scala/index.html#play.api.Configuration $)有一个from方法,需要一个Map

val mailConfig = Map("signupUrl" -> "/test/ws/users/signup/",
        "signupFrom"->"Test<[email protected]>",
        "signupReply"->"Test<[email protected]>")
      val newConfig = Configuration.from(Map("mail"->mailConfig))
      val newConfiguration = Configuration(newConfig)

错误

Error:(575, 30) overloaded method value apply with alternatives:
  (underlying: com.typesafe.config.Config)play.api.Configuration <and>
  (data: (String, Any)*)play.api.Configuration
 cannot be applied to (play.api.Configuration)
      val newConfiguration = Configuration(newConfig)

尝试2 - API(https://www.playframework.com/documentation/2.6.x/api/scala/index.html#play.api.Configuration $)有apply方法,需要(String,any*)

 val mailConfig = ("signupUrl" -> "/test/ws/users/signup/",
        "signupFrom"->"Test<[email protected]>",
        "signupReply"->"Test<[email protected]>")
      val newConfig = ("mail"->mailConfig)
      val newConfiguration = Configuration(newConfig)

错误

bug in method caller: not valid to create ConfigValue from: ((signupUrl,/test/ws/users/signup/),(signupFrom,Test<[email protected]>),(signupReply,Test<[email protected]>))
scala playframework-2.6
1个回答
0
投票

如果你只删除最后一个lin,你的第一个版本就可以了:

val mailConfig = Map("signupUrl" -> "/test/ws/users/signup/",
        "signupFrom"->"Test<[email protected]>",
        "signupReply"->"Test<[email protected]>")
      val newConfig = Configuration.from(Map("mail"->mailConfig))

val newConfig: Configuration = Configuration.from(Map("mail"->mailConfig))

已经返回配置。

如果要从key -> value对创建配置,则需要:

  • 把对放在Seq
  • Seq变换为varargs:_*)。

这里的例子如下:

val mailConfig = Seq("signupUrl" -> "/test/ws/users/signup/",
      "signupFrom"->"Test<[email protected]>",
      "signupReply"->"Test<[email protected]>")
    val newConfiguration = Configuration(mailConfig: _*)
© www.soinside.com 2019 - 2024. All rights reserved.