gpt4 book ai didi

java - 如何将 HandlerInterceptor 应用于 Spring Boot Actuator 端点?

转载 作者:行者123 更新时间:2023-11-29 03:08:23 25 4
gpt4 key购买 nike

我正在使用 Java 8Spring 1.2.3 构建一个在 Tomcat 7 容器内运行的应用程序。

我确实使用非常简单的 HandlerInterceptor 拦截了对我的 Web 应用程序的每一次调用,它记录了为每个请求创建响应和返回代码所花费的总时间。

我通过简单地添加 spring-boot-starter-actuator 依赖项来激活执行器端点,并通过调用添加拦截器

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {

@Autowired
private Application application;

@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(application.executeTimeInterceptor());
}

}

显然,Spring Boot Actuator 管理的所有端点(/info/health 等等)都不会被拦截:我如何确保拦截器拦截对我的应用程序的所有调用,包括调用执行器提供的端点的调用?

最佳答案

在 Spring Boot 1.x 中,您可以使用 EndpointHandlerMappingCustomizer 来配置执行器端点的拦截器。例如:

@Bean
public EndpointHandlerMappingCustomizer mappingCustomizer() {
return new EndpointHandlerMappingCustomizer() {

@Override
public void customize(EndpointHandlerMapping mapping) {
mapping.setInterceptors(new Object[] { application.executeTimeInterceptor() });
}

};
}

关于java - 如何将 HandlerInterceptor 应用于 Spring Boot Actuator 端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30839350/

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