【问题标题】:Playframework yaml set syntaxPlayframework yaml 设置语法
【发布时间】:2015-04-27 17:15:31
【问题描述】:

PlayFramework 是否支持 yaml 集?我已经尝试了由snakeyaml documentation 指定的格式,但只有集合的第一个成员被添加到集合中,其余的被忽略。以下是我尝试过的一些示例。

groups:
   - &adminGroup !!my.package.UserGroup
    name: admin
    roles:
        - *adminRole
    users: !!set
        ? *adminUser 
        ? *adminUser2

也试过
users: [ *adminUser, *adminUser2 ]users: !!set { *adminUser, *adminUser2 }

【问题讨论】:

  • 尝试在末尾添加破折号,参见this answer。如果这不起作用,您可以尝试使用列表来代替
  • 我之前曾尝试过在末尾加上破折号,但出现异常“此处不允许序列条目”
  • 你试过使用列表吗?顺便说一句,您使用的是 Play 2.x 对吗?我认为 Play 1 YAML 使用了不同的语法...
  • 我正在使用 Play 2.2.3 并且列表确实有效,只是对于这个 bean,我需要一个集合。

标签: playframework yaml snakeyaml


【解决方案1】:

所以这是对我有用的语法
users: ? *adminUser ? *adminUser2
只有第一个用户被插入到 Set 中的原因是因为 2 个对象的哈希值相等,所以第二个不会被插入,因为为了防止重复项,Set 对对象进行哈希处理。我在我的用户类中添加了一个 hashCode 方法,瞧。希望这对将来的人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 2016-02-27
    • 2017-04-12
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    相关资源
    最近更新 更多