Подтвердить что ты не робот

Как мне попасть в лакомства в моем Grails Config.groovy во время выполнения?

в Config.groovy Я вижу это:

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

Каков правильный способ доступа к нему во время выполнения?

4b9b3361

Ответ 1

danb находится на правильном пути. Тем не менее, жизнь становится немного легче на ваших пальцах, если вы делаете более приятный импорт:

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

Ответ 2

В более поздних версиях grails ConfigurationHolder устарел.

Вместо этого вы должны использовать объект grailsApplication.

grailsApplication.config.grails.serverURL

Если в контроллере или службе используется инъекция зависимостей grailsApplication. например.

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

См. Как получить доступ к конфигурации Grails в Grails 2.0?

Ответ 3

вот он:

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

альтернативно, в контроллерах и тэгах, по-видимому, это будет работать:

grailsApplication.config.grails.serverURL

Мне нужно было это в BootStrap, поэтому вариант 1 был тем, что мне нужно.

Ответ 4

Как уже упоминалось в нескольких комментариях, другой вариант - это класс grails.utils.Holders, который был добавлен в Grails 2.0. Я предпочитаю этот подход, так как вы можете использовать его в классах, которые не настроены с помощью инъекции зависимостей.

import grails.util.Holders

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