Spring AOP:获取切入点注释的参数
考虑我已经定义了以下方面:
@Aspect
public class SampleAspect {
@Around(value="@annotation(sample.SampleAnnotation)")
public Object display(ProceedingJoinPoint joinPoint) throws Throwable {
// ...
}
}
和注释
public @interface SampleAnnotation {
String value() default "defaultValue";
}
如果我的方面,有没有办法在显示方法中读取注释SampleAnnotation的值参数?
感谢您的帮助, 埃里克
Consider I have defined the following aspect:
@Aspect
public class SampleAspect {
@Around(value="@annotation(sample.SampleAnnotation)")
public Object display(ProceedingJoinPoint joinPoint) throws Throwable {
// ...
}
}
and the annotation
public @interface SampleAnnotation {
String value() default "defaultValue";
}
Is there a way to read the value parameter of the annotation SampleAnnotation in the display method if my aspect?
Thanks for your help,
erik
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
将建议签名更改为
,您将可以访问注释中的值。
请参阅 文档了解更多信息。
Change the advice signature to
and you will have access to the value in the annotation.
See docs for more info.
下面我将添加一个完整的 AOP 实现示例,其中我将从自定义 pointCut 注释中获取参数,其中我的建议旨在计算函数的执行时间:
1- 自定义注释:
2- 控制器:
3- 建议
解释:
我们的建议(logExecutionTime)将在(joinPoint)周围执行,该函数将用AnnotationLogExecutionTime(我们的自定义注释)进行注释,所以我想激活或不激活这个计算时间执行,所以我将从我们的自定义注释的成员中获取值(您询问;))
Bellow I'll add a complete example of AOP implementation where I'll getting parameter from my Custom pointCut annotation, where my advice aim to calculate the time execution of a function:
1- Custom Annotation:
2- Controller:
3- Advice
Explanation:
Our advice (logExecutionTime) will be excuted around (joinPoint) the function that will be annotated with AnnotationLogExecutionTime (our custom annotation) so I want to active or not this the calculation of time execution so I'll get the value from the membre of our custom annotation (which you ask about ;) )
我之前对如何绘制此图感到困惑。
I was confused on how to map this before.