如何在Grails项目中创建全局变量

fir*_*iel 12 grails

制作Grails项目中几乎所有类都可以访问的变量的最佳实践是什么?是否有可用于存储该数据的配置文件(即application.properties)?

谢谢.

Bur*_*ith 25

你最好的选择是Config.groovy.任何类都可以访问ConfigurationHolder.getConfig(),使其成为全局变量,甚至可以为变量提供特定于环境的值.

someVar = "foo"

environments {
   production {
      grails.serverURL = "http://www.changeme.com"
      someOtherVar = 1000
   }
   development {
      grails.serverURL = "http://localhost:8080/${appName}"
      someOtherVar = 100
   }
   test {
      grails.serverURL = "http://localhost:8080/${appName}"
      someOtherVar = 0
   }
}
Run Code Online (Sandbox Code Playgroud)

  • 在Groovy中,您可以使用别名导入"import org.codehaus.groovy.grails.commons.ConfigurationHolder as CH",然后将其作为"CH.config.someVar"访问 (8认同)
  • 您可以将`def grailsApplication`的依赖注入添加到控制器/服务/等.并通过`grailsApplication.config`访问配置.对于不起作用的极少数情况,请参阅http://burtbeckwith.com/blog/?p=993和http://burtbeckwith.com/blog/?p=1017 (6认同)