1..创建一个 Spring Boot 应用(例如,您可以使用 Spring Initializr 创建一个新的 Spring Boot 项)。
2.创建一个拦截器类 RequestInterceptor
,用于监控请求的性能数据:
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RequestInterceptor implements HandlerInterceptor {
private ThreadLocal<Long> startTime = new ThreadLocal<>();
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
startTime.set(System.currentTimeMillis());
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
long endTime = System.currentTimeMillis();
long duration = endTime - startTime.get();
// 假设 200 为成功状态码
boolean isSuccess = response.getStatus() == HttpServletResponse.SC_OK;
// 在这里记录度量指标,您可以使用 MeterRegistry
// 例如:meterRegistry.counter("api.test.do.requests.total", "result", isSuccess ? "success" : "failure");
// meterRegistry.timer("api.test.do.requests.duration").record(Duration.ofMillis(duration));
startTime.remove();
}
}
1.创建一个示例的 API 接口,例如 /api/test.do
:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@GetMapping("/api/test.do")
public String testApi() {
// 这里是您的接口逻辑
return "Hello, this is the test API!";
}
}
2.创建一个 Spring Boot 配置类 WebConfig
,配置拦截器并指定要监控的接口:
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new RequestInterceptor()).addPathPatterns("/api/test.do");
}
}
-
在您的
pom.xml
文件中,确保已经添加了 Spring Boot Starter 和 Spring Boot Actuator 的依赖。 -
启动应用程序,并访问
/api/test.do
接口以触发拦截器并监控性能数据。