通过 AOP 审计带注释 class 的所有 public 方法
Audit trough AOP all public methods of an annotated class
有可能通过 AOP(使用 spring aop、aspectj 等)审计 class 的所有 public 方法,这些方法用 @Service 或 @Repository 或什么注释我曾经认为注释是 class 级别而不是方法级别?
我想要这样的东西:
@Pointcut(value = "execution(public * *(..))")
public void anyPublicMethod() {}
@Around("anyPublicMethod() && @annotation(Repository)")
public Object doLogTime(ProceedingJoinPoint joinPoint) throws Throwable {
//do something
}
切入点应该是
execution(public * @my.package.Repository *.*(..))
这与
隐式相同
execution(public * (@my.package.Repository *).*(..))
P.S.: 你从问题中切入的切入点实际上是针对 @Repository
注释的方法,这不是你想要的。
有可能通过 AOP(使用 spring aop、aspectj 等)审计 class 的所有 public 方法,这些方法用 @Service 或 @Repository 或什么注释我曾经认为注释是 class 级别而不是方法级别? 我想要这样的东西:
@Pointcut(value = "execution(public * *(..))")
public void anyPublicMethod() {}
@Around("anyPublicMethod() && @annotation(Repository)")
public Object doLogTime(ProceedingJoinPoint joinPoint) throws Throwable {
//do something
}
切入点应该是
execution(public * @my.package.Repository *.*(..))
这与
隐式相同execution(public * (@my.package.Repository *).*(..))
P.S.: 你从问题中切入的切入点实际上是针对 @Repository
注释的方法,这不是你想要的。