如何在运行时在我的Grails Config.groovy中获得好东西?
在Config.groovy我看到这个:
// set per-environment serverURL stem for creating absolute links environments { production { grails.serverURL = "http://www.changeme.com" } }
什么是在运行时访问的正确方法?
danb在正确的轨道上。 然而,如果您进行更好的导入,您的手指会变得更容易一些:
import org.codehaus.groovy.grails.commons.ConfigurationHolder as CH println CH.config.grails.serverURL
在最近版本的Grails ConfigurationHolder已经被弃用了。
相反,你应该使用grailsApplication对象。
grailsApplication.config.grails.serverURL
如果在控制器或服务中,则使用grailsApplication对象的dependency injection。 例如
class MyController{ def grailsApplication def myAction() { grailsApplication.config.grails.serverURL }
请参阅如何在Grails 2.0中访问Grailsconfiguration?
这里是:
import org.codehaus.groovy.grails.commons.ConfigurationHolder println ConfigurationHolder.config.grails.serverURL
或者,在控制器和标签,显然这将工作:
grailsApplication.config.grails.serverURL
我需要BootStrap,所以选项1是我所需要的。
正如在一些评论中提到的,另一个选项是在Grails 2.0中添加的grails.utils.Holders
类。 我更喜欢这种方法,因为你可以在没有configurationdependency injection的类中使用它。
import grails.util.Holders class Foo { def bar() { println(Holders.config.grails.serverURL) } }