在 Config.groovy 我看到这个:
// set per-environment serverURL stem for creating absolute links
environments {
production {
grails.serverURL = "http://www.changeme.com"
}
}
在运行时访问它的正确方法是什么?
在 Config.groovy 我看到这个:
// set per-environment serverURL stem for creating absolute links
environments {
production {
grails.serverURL = "http://www.changeme.com"
}
}
在运行时访问它的正确方法是什么?
在更新的 grails 版本中,ConfigurationHolder 已被弃用。
相反,您应该使用 grailsApplication 对象。
grailsApplication.config.grails.serverURL
如果在 Controller 或 Service 中,则使用 grailsApplication 对象的依赖注入。例如
class MyController{
def grailsApplication
def myAction() {
grailsApplication.config.grails.serverURL
}
danb 在正确的轨道上。但是,如果您进行更好的导入,您的生活会变得轻松一些:
import org.codehaus.groovy.grails.commons.ConfigurationHolder as CH
println CH.config.grails.serverURL
这里是:
import org.codehaus.groovy.grails.commons.ConfigurationHolder
println ConfigurationHolder.config.grails.serverURL
或者,在控制器和标签中,显然这将起作用:
grailsApplication.config.grails.serverURL
我在 BootStrap 中需要它,所以我需要选项 1。
正如一些评论中提到的,另一个选项是grails.utils.Holders
在 Grails 2.0 中添加的类。我更喜欢这种方法,因为您可以在未配置依赖注入的类中使用它。
import grails.util.Holders
class Foo {
def bar() {
println(Holders.config.grails.serverURL)
}
}