Способ сделать это - перебрать ваши контроллеры и добавить к ним методы, используя метапрограммирование.
Для одного примера, проверьте плагин perf4j (файл Perf4jGrailsPlugin.groovy).
В нем вы увидите что-то вроде:
application.controllerClasses.each() {
addPerf4jMethods(it.clazz, log)
}
def addPerf4jMethods(artefactClass, log) {
log.info "Adding Per4j methods: ${artefactClass}..."
artefactClass.metaClass.withStopwatch << { Closure callable ->
withStopwatch("", null, callable)
}
artefactClass.metaClass.withStopwatch << { String tag, Closure callable ->
withStopwatch(tag, null, callable)
}
}
В приведенном выше коде вы перебираете все контроллеры и добавляете методы с помощью StopWatch, так что теперь они доступны везде. Если вам нужно сделать это только на некоторых контроллерах, вы, очевидно, можете выполнить дополнительные проверки.
Вы можете поместить этот код в BootStrap.groovy, чтобы он запускался при каждом запуске приложения.