【问题标题】:Referencing user-defined configuration variable in Grails?在 Grails 中引用用户定义的配置变量?
【发布时间】:2011-10-12 14:50:07
【问题描述】:

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

这将用于来自不同位置的网络,它需要根据使用它的人路由到正确的位置。

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

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

我需要将“主机”和“端口”放在应用程序的不同部分,在 URL 字符串中,如下所示:

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

...等等。但我似乎找不到一种简单的方法来引用文件中的实际配置。有没有简单的方法可以做到这一点?

提前致谢!

【问题讨论】:

  • 你想在 Config.groovy 的其他地方引用主机和端口,还是想在你的应用程序代码中引用它们?
  • 看看[this][1],对我有用!!! [1]:stackoverflow.com/a/18528665/2835520

标签: grails configuration


【解决方案1】:

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

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

def url = "http://${host}:${port}"

ConfigurationHolder 在 Grails 1.3.7 中已弃用,您应该改用 GrailsApplication。您可以通过依赖注入获取对此类实例的引用,例如

class MyController {

  def grailsApplication
}

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

ConfigObject config = grailsApplication.config

【讨论】:

  • 嗯。我收到一条错误消息,提示“config”为空。文件名只是 Config.groovy。知道为什么这不起作用吗?我的代码看起来和第二个例子一模一样,用实际值代替。
  • 第一个例子实际上有效,所以这个答案很好。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多