springboot restTemplate 自定义拦截器
**********************
示例
****************
config 层
CustomRestTemplateInterceptor
@Component
public class CustomRestTemplateInterceptor implements ClientHttpRequestInterceptor {
@Override
public ClientHttpResponse intercept(HttpRequest httpRequest, byte[] bytes, ClientHttpRequestExecution clientHttpRequestExecution) throws IOException {
System.out.println("自定义拦截器");
return clientHttpRequestExecution.execute(httpRequest, bytes);
}
}
WebConfig
@Configuration
public class WebConfig {
@Resource
private CustomRestTemplateInterceptor customRestTemplateInterceptor;
@Bean
public RestTemplate initRestTemplate(){
RestTemplate restTemplate= new RestTemplate();
restTemplate.getInterceptors().add(customRestTemplateInterceptor);
return restTemplate;
}
}
****************
controller 层
HelloController
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello(){
return "hello world";
}
}
Hello2Controller
@RestController
public class Hello2Controller {
@Resource
private RestTemplate restTemplate;
@RequestMapping("/test")
public String test(){
return restTemplate.getForObject("http://localhost:8080/hello",String.class);
}
}
**********************
使用测试
localhost:8080/test,控制台输出:
2020-06-29 19:34:18.476 INFO 9736 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2020-06-29 19:34:18.485 INFO 9736 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 9 ms
自定义拦截器