Grails 3使用“。”解析哈希映射属性。密钥在早期版本中无法按预期工作

时间:2019-02-22 13:27:31

标签: grails

我们的多租户应用程序具有以下属性,可帮助我们根据域查找租户。

mydomains = [
  'www.google.com': 'tenant1',
  'www.abc.com': 'tenant2'
]

在grails2.2.4中,我们可以

对其进行访问
grailsApplication.config.mydomains['www.abc.com']

它将正确地在2.2.4中给我们'tenant2',但是在grails 3.3.7中,它似乎为每个“”创建了一个映射。在密钥中,因此无法找到给定域的租户。这是在3.3.7中解析mydomains属性的方式

[www:[google:[com:tenant1], abc:[com:tenant2]]]

有没有一种方法可以使我在3.3.7中得到相同的行为?

1 个答案:

答案 0 :(得分:0)

使用grailsApplication.config.mydomains['www.abc.com']代替grailsApplication.config.getProperty('mydomains.www.abc.com')

顺便说一句...这与您的问题没有直接关系,但是在极少数情况下,直接引用grailsApplication.config确实是最好的选择。有关更多信息,请参见https://objectcomputing.com/resources/publications/sett/retrieving-config-values-in-grails-3上的文章和https://objectcomputing.com/products/grails/quickcasts/runtime-config-values-grails-3上的视频。在视频中,我讨论了直接访问grailsApplication.config通常不是最好的一些原因。

我希望有帮助。