我有一个带有自定义过滤器的spring boot应用程序:
import javax.servlet.Filter
public class MyFilter implements Filter{
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
System.out.println("MyFilter");
}
}
应用程序中的某些控制器在其方法上具有自定义注解。所有自定义注解都实现myannotation接口。
@GetMapping("/")
@MyCustomAnnotation
@AnotherCustomAnnotation
public ResponseEntity<String> get(){
addSomeMetric();
return new ResponseEntity<>("Hello world", HttpStatus.OK);
}
如何从dofilter代码中获取在uri端点上定义的所有注解的列表?
2条答案
按热度按时间w8biq8rn1#
springaop可用于根据请求/用户来决定是否需要执行控制器方法。
下面的代码是实现相同功能的一种方法。
还要注意,注解retentionpolicy必须是运行时的,这样代码才能工作。
kxeu7u2r2#
我最终使用了一个handler拦截器而不是过滤器。
因为我只针对web请求,所以它似乎是比aop更好更简单的解决方案。