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オブジェクトの依存性注入を使用します。例えば.
class MyController{
def grailsApplication
def myAction() {
grailsApplication.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)
}
}