Мне удалось перехватить нестатический метод через
grailsApplication.domainClasses.each { gc ->
domainClasss = gc.clazz
domainClass.metaClass.invokeMethod { String name,args ->
delegate.log.info "printing method $name"
}
}
и получить желаемый результат
, однако, если я повторяю статический метод, такой как
grailsApplication.domainClasses.each { gc ->
domainClasss = gc.clazz
domainClass.metaClass.static.invokeMethod { String name,args ->
delegate.log.info "printing method $name"
}
}
он не напечатает желаемый результат, а domainClass [es], у которого есть метод beforeInsert или beforeUpdate, возвращает ошибку вроде:
java.lang.NullPointerException: Cannot invoke method encodePassword() on null object
Я что-то здесь упустил?Надеюсь, кто-нибудь может дать мне объяснения о том, как работает перехват статического метода.