使用非Spring Groovy类中的服务

时间:2011-08-31 10:20:50

标签: java spring grails dependency-injection

我正在实现一个自定义的InteractiveAuthenticationSuccessEventListener来响应来自spring-security-core插件的事件 - 源文件位于/ src / groovy

在本课程中,我如何使用grails-app / services中定义的服务?依赖注入(显然?)不起作用。

1 个答案:

答案 0 :(得分:4)

以下是两个选项

  1. 将依赖项传递给类
  2. 使用辅助类(如
  3. )检索类中的spring bean
    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);
        }    
    }
    

    第一个选择是更好的IMO