【问题标题】:How to get Grails application name within Config.groovy?如何在 Config.groovy 中获取 Grails 应用程序名称?
【发布时间】:2012-04-06 06:19:54
【问题描述】:

我想在 grails-app/Config.groovy 的一些配置设置中包含 Grails 应用程序名称。我尝试了很多方法都没有成功。例如,如果我的Config.groovy 中有以下内容,

edu.appname1 = "${grailsApplication.metadata.'app.name'}"
edu.appname2 = "${application.metadata.'app.name'}"
edu.appname3 = "${metadata.'app.name'}"
edu.appname4 = "${app.name}"

我可以在 Grails 控制台中运行这些语句

def edu = grailsApplication.config.edu
println "${'''${grailsApplication.metadata.'app.name'} -> '''}${edu.appname1}"
println "${'''${application.metadata.'app.name'}       -> '''}${edu.appname2}"
println "${'''${metadata.'app.name'}                   -> '''}${edu.appname3}"
println "${'''${app.name}                              -> '''}${edu.appname4}"

结果如下。

${grailsApplication.metadata.'app.name'} -> [:]
${application.metadata.'app.name'}       -> [:]
${metadata.'app.name'}                   -> [:]
${app.name}                              -> [:]

必须有某种方法来获取此信息。

【问题讨论】:

    标签: grails configuration configuration-files grails-config


    【解决方案1】:

    要在grails.config.locations 包含的配置文件中获取 appName,您可以使用:

    appName = grails.util.Metadata.current.'app.name'
    

    【讨论】:

    • 谢谢。这正是我所需要的。
    • 我在谷歌上搜索这个声明。它适用于我的 grails 2.3.11。谢谢!
    • 完美,正是我所需要的。您还可以使用 grails.util.Metadata.current.getApplicationName() 作为等效项
    【解决方案2】:

    试试这个:

    edu.appname1 = appName
    

    或者如果您想用作较长配置参数的一部分

    edu.appname1 = "something.$appName.else"
    

    【讨论】:

    • 我的问题是它在我通过grails.config.locations 包含的文件中不可用。我将把它保存到Config.groovy 的新属性中并使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    相关资源
    最近更新 更多