определение бобов грааля - PullRequest
       4

определение бобов грааля

3 голосов
/ 17 февраля 2011

В моем плагине Grails я определяю следующие Spring bean

def doWithSpring = {

    // define a bean of type ConfigObjectHelper
    configHelper(ConfigObjectHelper)

    // Call a method of the bean we've just defined
    String appName = configHelper.getAsString('ftp.general.appName')

    // define another bean and pass appName to it's constructor
    pkApplication(Application, appName)
}

Когда я вызываю configHelper.getAsString, я получаю исключение NullPointerException, потому что configHelper не относится к бину, который я создал в предыдущей строке. Вместо этого Grails ищет свойство / поле текущего класса с этим именем. Поскольку ничего не существует, я получаю исключение NullPointerException.

Есть ли способ получить ссылку на bean-компонент Spring в закрытии doWithSpring?

Спасибо

1 Ответ

4 голосов
/ 18 февраля 2011

MethodInvokingFactoryBean на помощь!

def doWithSpring = {

    // define a bean of type ConfigObjectHelper
    configHelper(ConfigObjectHelper)    

    appName(org.springframework.beans.factory.config.MethodInvokingFactoryBean) {
        targetObject = ref('configHelper')
        targetMethod = 'getAsString'
        arguments = ['ftp.general.appName']
    }               

    // define another bean and pass appName to it's constructor
    pkApplication(Application, appName)
}
...