Использование сервиса из не-Spring Groovy класса - PullRequest
2 голосов
/ 31 августа 2011

Я реализую пользовательский InteractiveAuthenticationSuccessEventListener, чтобы реагировать на события из плагина core-security-core - исходный файл находится в / src / groovy

Как в этом классе я могу использовать службу, определенную в grails-app / services? Внедрение зависимостей (очевидно?) Не работает.

1 Ответ

4 голосов
/ 31 августа 2011

Вот два варианта

  1. передать зависимости в класс
  2. извлекает пружинный компонент в классе, используя вспомогательный класс, такой как

import org.codehaus.groovy.grails.web.servlet.GrailsApplicationAttributes
import org.codehaus.groovy.grails.web.context.ServletContextHolder
import org.springframework.context.ApplicationContext

public class SpringUtils {

    static getSpringBean(String name) {
        getApplicationContext().getBean(name);
    }

    static ApplicationContext getApplicationContext() {
        return ServletContextHolder.getServletContext().getAttribute(GrailsApplicationAttributes.APPLICATION_CONTEXT);
    }    
}

Первый вариант лучше ИМО

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...