无论如何要创建一个 Spring 方面的建议,它会触发任何未被某些注释注释的方法?
Is there anyway to create a Spring Aspect advice that triggers on any method that is NOT annotated by certain annotation?
基本上我正在尝试创建一个日志系统来记录大多数控制器方法(它们的参数、主体、状态代码等),但是,有一些控制器方法我不想记录一些具体原因。我不想创建一个注释来指示将记录此方法(因为会有很多),相反,我想创建一个注释来指示不应记录此方法。显然,我不能否定 Spring 方面建议中的注释,那么有什么解决方法吗? (例如从 ProceedingJoinPoint
获取方法的所有注释,然后检查它们是否包含该 NoLog
注释)
MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
Method method = joinPoint.getTarget().getClass()
.getMethod(methodSignature.getMethod().getName(),
methodSignature.getMethod().getParameterTypes());
CustomAnnotation annotation = method.getAnnotation(CustomAnnotation.class);
好吧,看起来你可以使用上面的代码尝试在你的方法上获取 CustomAnnotation
,如果你的方法没有被这个 CustomAnnotation
注释,null
将被返回,否则将返回一个 Proxy
对象
基本上我正在尝试创建一个日志系统来记录大多数控制器方法(它们的参数、主体、状态代码等),但是,有一些控制器方法我不想记录一些具体原因。我不想创建一个注释来指示将记录此方法(因为会有很多),相反,我想创建一个注释来指示不应记录此方法。显然,我不能否定 Spring 方面建议中的注释,那么有什么解决方法吗? (例如从 ProceedingJoinPoint
获取方法的所有注释,然后检查它们是否包含该 NoLog
注释)
MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
Method method = joinPoint.getTarget().getClass()
.getMethod(methodSignature.getMethod().getName(),
methodSignature.getMethod().getParameterTypes());
CustomAnnotation annotation = method.getAnnotation(CustomAnnotation.class);
好吧,看起来你可以使用上面的代码尝试在你的方法上获取 CustomAnnotation
,如果你的方法没有被这个 CustomAnnotation
注释,null
将被返回,否则将返回一个 Proxy
对象