我得到了同样的问题 In Groovy Is there a way to decorate every class to add tracing? 但是这个答案现在已有几年了,所以我想知道现在是否有更好更简单的方法在执行方法之前,之后或周围执行某些代码。我更喜欢像
这样的注释@TraceLog
class Foo {
def bar() {
println "in bar"
}
}
或
class Foo {
@TraceLog
def bar() {
println "in bar"
}
}
因此,当我调用bar()时,在打印“in bar”之前执行一些代码(由TraceLog Aspect或类似定义)。 那可能是groovy吗?
答案 0 :(得分:3)
您可以通过AST转换as shown here
来完成此操作应谨慎对待该示例,因为endMessage
仅作为方法中的最后一个语句添加。如果该方法具有返回值,则可能是错误的......