为了账号安全,请及时绑定邮箱和手机立即绑定

如何仅过滤使用我的自定义注释进行注释的 api

如何仅过滤使用我的自定义注释进行注释的 api

ITMISS 2023-02-23 17:03:53
如何设置过滤器配置以仅使用此注释可记录过滤 api?//custom annotation@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface Loggable {}@Loggable@Postmappingpublic String  foo(){return "";}
查看完整描述

2 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

我做了一些研究,因为我认为这是一个有趣的话题。事实证明,您尝试做的事情对于过滤器是不可能的,但对于 AOP 是可行的。该博客准确描述了您的需求:https ://www.baeldung.com/spring-aop-annotation

不能对过滤器执行此操作的原因是调用过滤器时,尚未确定将调用什么方法。这是在过滤器之后执行的 DispatcherServlet 中确定的。有关这方面的更多信息,请参阅这些博客:

http://tutorials.jenkov.com/java-servlets/servlet-filters.html https://www.baeldung.com/spring-dispatcherservlet

我确实认为博客中概述的 AOP 实现有一个小问题。如果带注释的方法抛出异常,我认为不会记录执行时间。您可以通过简单地将 joinPoint.proceed 包装在 try/catch 块中来解决这个问题(在第 7 步中)


查看完整回答
反对 回复 2023-02-23
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

如果您正在寻找:

if (annotation.annotationType().equals(CustomAnnotationType.class)) {}


查看完整回答
反对 回复 2023-02-23
  • 2 回答
  • 0 关注
  • 120 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号