web-dev-qa-db-ja.com

実行時にGrails Config.groovyの便利な機能を利用するにはどうすればよいですか?

config.groovyでこれを見る:

// set per-environment serverURL stem for creating absolute links
environments {
    production {
        grails.serverURL = "http://www.changeme.com"
    }
}

実行時にそれにアクセスする正しい方法は何ですか?

36
danb

danbは正しい方向に進んでいます。しかし、より良いインポートを行うと、人生はあなたの指で少し楽になります:

import org.codehaus.groovy.grails.commons.ConfigurationHolder as CH
println CH.config.grails.serverURL
31
Robert Fischer

Grailsの最近のバージョンでは、ConfigurationHolderは非推奨になりました。

代わりに、grailsApplicationオブジェクトを使用する必要があります。

grailsApplication.config.grails.serverURL

コントローラーまたはサービスの場合は、grailsApplicationオブジェクトの依存性注入を使用します。例えば.

class MyController{
    def grailsApplication
    def myAction() {
        grailsApplication.config.grails.serverURL
    }

Grails 2.0でGrails設定にアクセスする方法をご覧ください

74
khylo

ここにあります:

import org.codehaus.groovy.grails.commons.ConfigurationHolder
println ConfigurationHolder.config.grails.serverURL

あるいは、コントローラーとタグでは、これは明らかに機能します:

grailsApplication.config.grails.serverURL

BootStrapで必要だったので、オプション1が必要でした。

14
danb

コメントのいくつかで述べたように、別のオプションは grails.utils.Holders Grails 2.0で追加されたクラス。依存性注入で構成されていないクラスで使用できるので、このアプローチを好みます。

import grails.util.Holders

class Foo {
    def bar() {
        println(Holders.config.grails.serverURL)
    }
}
10
jstricker