我需要测试当客户端应用程序在远离服务器且连接不是很好时的行为方式。客户端是使用Spring的RestTemplate的JavaFX应用程序,服务器是RESTful Spring Boot应用程序。
如何在服务器获取每个请求时人为地注入延迟?
答案 0 :(得分:1)
您可以添加覆盖HandlerInterceptor
和preHandle
方法的postHandle
。
preHandle
将被调用。
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception
在完成Controller的方法之后 postHandle
将被调用。
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception
您可以使用Thread.sleep()
延迟请求/响应的任何方法。
您必须扩展WebMvcConfigurerAdapter
,您可以在其中附加HandlerInterceptor
for servlet
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(MyHandlerInterceptor);
}
答案 1 :(得分:-1)
如果您真的想在代码中执行此操作。您可以在配置中添加Before Advice,并通过查找@RestController注释的poincut将其应用于应用程序中的任何Rest Controller。您可以查看更多详细信息here。