Добавление изменений слушателей в GORM Grails - PullRequest
1 голос
/ 21 марта 2012

Я новичок в Grails и использую Grails 2.0.1.Я хочу добавить прослушиватель событий постоянства для изменений в объектах для класса домена, поэтому я попробовал код в Bootstrap.groovy, как указано в руководстве пользователя:

def init = {
    applicationContext.addApplicationListener(new FooBarListener())
}

И я получаю следующее сообщение об ошибке:

ERROR context.GrailsContextLoader - Ошибка при выполнении начальной загрузки: Нет такого свойства: applicationContext для класса: BootStrap

Как получить applicationacionContext свойство внутри класса BootStrap?Или документация устарела, и есть новый / лучший способ добавления прослушивателей изменений домена?.

Заранее спасибо.

Ответы [ 3 ]

8 голосов
/ 22 марта 2012

Самый короткий путь, который я знаю, это

class BootStrap {

   def grailsApplication

   def init = { servletContext ->
      def applicationContext = grailsApplication.mainContext
   }
}
2 голосов
/ 21 марта 2012
import org.codehaus.groovy.grails.commons.ApplicationAttributes

class BootStrap {

    def init = {servletContext ->

        def applicationContext = servletContext.getAttribute(ApplicationAttributes.APPLICATION_CONTEXT) 
    }
}
0 голосов
/ 21 марта 2012

applicationacionContext должен быть определен в BootStrap. Следующее должно работать

     class BootStrap {
       def applicacionContext 

    def init = {
     applicationContext.addApplicationListener(new FooBarListener())
    }

   }
...