gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 03:46:11 24 4
gpt4 key购买 nike

如何设置过滤器配置以仅过滤带有此注释 Loggable 的 api?

//custom annotation

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Loggable {
}

@Loggable
@Postmapping
public String foo(){
return "";
}

最佳答案

我做了一些研究,因为我认为这是一个有趣的话题。事实证明,您想要做的事情用过滤器是不可能的,但用 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 block 中(在步骤 7 中)来解决此问题

关于java - 如何仅过滤使用我的自定义注释进行注释的 api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56805396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com