2013-04-18 49 views
0

但是,我已经创建了自定义事件侦听器,它扩展了AbstractPersistenceEventListener,如Grails文档http://grails.org/doc/latest/guide/GORM.html中所述,它工作正常。如果执行如下操作,我无法在此侦听器中注入Service。无法在src/groovy中注入grails应用上下文

def context = ServletContextHolder.servletContext.getAttribute(GrailsApplicationAttributes.APPLICATION_CONTEXT) 
def myService = context.myService 

'context'返回null。

任何想法可能是什么问题。谢谢 p.s. GRails 2.1.2

+0

上下文返回null或上下文为空? – 2013-04-18 12:31:34

+0

对不起,我的英文。上下文为null或ServletContextHolder.servletContext.getAttribute(GrailsApplicationAttributes.APPLICATION_CONTEXT)返回null – latvian 2013-04-18 13:00:58

回答

1

当您注册时,将applicationContext传入您的Listener作为构造函数参数。

+0

谢谢托德。我很困惑一点点...在这么多魔术:)而不是参数,我保持构造函数的原样并在注册事件之前启动后分配服务。 – latvian 2013-04-19 02:02:27

+0

DEF doWithApplicationContext = {的applicationContext - > application.mainContext.eventTriggeringInterceptor.datastores.each {K,数据存储 - > DEF cacheListener =新CacheListener(数据存储) cacheListener.nodeDriverProxyService = applicationContext.nodeDriverProxyService applicationContext.addApplicationListener cacheListener – latvian 2013-04-19 02:02:52

+0

我们手动注入服务 - nodeDriverProxyService ... – latvian 2013-04-19 02:05:35

相关问题