наследование грааля работает так же, как наследование Java. Вам просто нужно предоставить новую функцию с пользовательской реализацией
или вы можете получить фантазию и использовать метапрограммирование.
хорошая статья о метапрограммировании в groovy
http://www.ibm.com/developerworks/java/library/j-pg06239/index.html
Метапрограммирование - это написание компьютерных программ, которые пишут или манипулируют другими программами (или самими собой) в качестве своих данных или выполняют часть работы во время компиляции, которая в противном случае была бы выполнена во время выполнения. Во многих случаях это позволяет программистам выполнять больше работы за то же время, что и на написание всего кода вручную, или дает программам большую гибкость для эффективной обработки новых ситуаций без перекомпиляции
groovy предоставляет 2 типа метапрограммирования: метапрограммирование во время компиляции и метапрограммирование во время выполнения.
вы можете сделать что-то вроде следующего в вызовах загрузочного ремешка, которые должны работать
def grailsApplication
def init = { servletContext ->
soSomethingWithAService()
}
def destroy = {
}
private def doSomethingWithAService() {
grailsApplication.serviceClasses.each { serviceClass ->
// do something
def result
return result
}
}
}
}