在Grails中引用用户定义的配置变量?

时间:2011-10-12 14:50:08

标签: grails configuration

我正在尝试将一部分配置添加到我的Config.groovy文件中,并在其他位置引用这些条目。

这将用于来自不同位置的网络,并且需要根据使用者的路线到达正确的位置。

配置中的基本布局如下所示:

externalApp {
    host: "xxx.xxx.xx.xx"
    port: "xxxx"
}

我需要将“host”和“port”放在应用程序的不同部分中,在URL字符串中如下:

http://**externalApp.host**:**externalApp.port**

...等。但我似乎无法找到一种简单的方法来引用文件中的实际配置。有一个简单的方法吗?

提前致谢!

1 个答案:

答案 0 :(得分:2)

如果您只是想在应用程序中获得对这些配置参数的引用,那么您可以使用:

def host = ConfigurationHolder.config.externalApp.host
def port = ConfigurationHolder.config.externalApp.port

def url = "http://${host}:${port}"
Grails 1.3.7中不推荐使用

ConfigurationHolder,而是应该使用GrailsApplication。您可以通过依赖注入获得对此类实例的引用,例如

class MyController {

  def grailsApplication
}

然后使用以下命令获取对配置的引用:

ConfigObject config = grailsApplication.config