2

假设情况:

我从网上下载了一个 Grails 应用程序作为 WAR 文件,foo.war. 在文档中它说我可以将我自己的自定义配置放入 中/foo.groovy,因为此路径包含grails.config.locationsConfig.groovy. 我可以将我所有的自定义配置转储到一个文件中,并且生活很好。

怎么样,这是我的问题... FooApp 的配置又大又多,我不想把它全部放在一个文件中。我想把它分解成/bar.groovy/baz.groovy保持井井有条。有没有办法指定一些东西,/foo.groovy以便 FooApp 也将拾取/bar.groovy/baz.groovy处理它们?

我已经尝试将路径附加到grails.config.locationsin /foo.groovy,但 Grails 不喜欢这样,并在启动时抛出了一个令人讨厌的异常。我不确定要采取什么其他方法。

为清楚起见进行编辑:

grails-app/conf/Config.groovy看起来像这样:

grails.config.locations = ["file:/foo.groovy"]

现在,无需修改grails-app/conf/Config.groovy,仅通过修改/foo.groovy,有没有办法加载除 之外的更多配置文件/foo.groovy

4

1 回答 1

2

您可以在以下内容中添加其他配置文件foo.groovy

foo.groovy

port {
  to {
    somewhere=8080
    another {
      place=7070
    }  
  }  
}
host = new ConfigSlurper().parse(new File("bar.groovy").toURL())

bar.groovy

to {
  somewhere="http://localhost/"
  another {
    place="https://another.place.com/"
  }
}

因此,在您的应用程序中,您拥有:

assert grailsApplication.config.port.to.somewhere == 8080
assert grailsApplication.config.port.to.another.place == 7070
assert grailsApplication.config.host.to.somewhere == "http://localhost/"
assert grailsApplication.config.host.to.another.place == "https://another.place.com/"
于 2012-07-13T14:14:22.057 回答