如何設置過濾器配置以僅使用此注釋可記錄過濾 api?//custom annotation@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface Loggable {}@Loggable@Postmappingpublic String foo(){return "";}
2 回答

慕哥6287543
TA貢獻1831條經(jīng)驗 獲得超10個贊
我做了一些研究,因為我認為這是一個有趣的話題。事實證明,您嘗試做的事情對于過濾器是不可能的,但對于 AOP 是可行的。該博客準確描述了您的需求:https ://www.baeldung.com/spring-aop-annotation
不能對過濾器執(zhí)行此操作的原因是調用過濾器時,尚未確定將調用什么方法。這是在過濾器之后執(zhí)行的 DispatcherServlet 中確定的。有關這方面的更多信息,請參閱這些博客:
http://tutorials.jenkov.com/java-servlets/servlet-filters.html https://www.baeldung.com/spring-dispatcherservlet
我確實認為博客中概述的 AOP 實現(xiàn)有一個小問題。如果帶注釋的方法拋出異常,我認為不會記錄執(zhí)行時間。您可以通過簡單地將 joinPoint.proceed 包裝在 try/catch 塊中來解決這個問題(在第 7 步中)

牧羊人nacy
TA貢獻1862條經(jīng)驗 獲得超7個贊
如果您正在尋找:
if (annotation.annotationType().equals(CustomAnnotationType.class)) {}
添加回答
舉報
0/150
提交
取消