Grails 如何在Config.groovy中引用应用程序属性?

Grails 如何在Config.groovy中引用应用程序属性?,grails,Grails,假设我在Config.groovy中指定了我的应用程序属性: app.work.dir='/temp/work' 如何引用此属性值来定义同一Config.groovy文件中的其他属性,也就是说,由于grailApplication.Config此时的属性为空,因此此操作不起作用: app.resource.dir=grailsApplication.config.app.work.dir+'/static' 我知道我可以定义一个变量,然后在这两个地方都使用这个变量,但它真的很难看,所以我希望

假设我在Config.groovy中指定了我的应用程序属性:

app.work.dir='/temp/work'
如何引用此属性值来定义同一Config.groovy文件中的其他属性,也就是说,由于grailApplication.Config此时的属性为空,因此此操作不起作用:

app.resource.dir=grailsApplication.config.app.work.dir+'/static'

我知道我可以定义一个变量,然后在这两个地方都使用这个变量,但它真的很难看,所以我希望有一种更干净的方法来实现它。

变量替换在
Config.groovy
中有效。下面是一个取自一些实际生产代码的示例:

external.config.base = '/known/config/file/path'

grails.config.locations = ["file:${external.config.base}/myapp-config.groovy"]
sitemap.file.path = "${external.config.base}"

好的,一旦定义了一个变量,它就可用了,所以您只需使用
app.resource.dir=app.work.dir+'/static'
,有趣的是,如果我在另一个*.groovy文件中声明第一个属性并通过在grails.config.locations中指定它来加载该配置文件,这种方法就不起作用了。这是因为在config.groovy之后加载了其他配置文件