我仅仅宣布spring boot2的一个新的功能,开始用spring搭建REST
1、介绍
在这个简短的文章中,我们将要查看怎样配置一个spring RestTemplate bean。
让我们开始讨论3个主要的配置类型。
- 使用默认的RestTemplateBuilder
- 使用一个RestTemplateCustomizer
- 创建我们的RestTemplateBuilder
为了更容易的测试,请按照指导《怎样安装一个简单的spring boot应用程序》, how to set up a simple Spring Boot application.
2、配置使用默认的RestTemplateBuilder
为了配置一个RestTemplate 这个方法,我们需要在我们的类中注入spring boot提供默认的RestTemplateBuilder bean
private RestTemplate restTemplate;
@Autowired
public HelloController(RestTemplateBuilder builder) {
= ();
}
RestTemplate使用这个方法创建,但是它的范围仅限制于我们创建的类中。
3、使用一个RestTemplateCustomizer配置
对于这个途径,我们可以创建一个广泛的应用,附加自定义。
这是一个稍微复杂难懂的途径。对于这个途径我们需要创建一个实现RestTemplateCustomizer的类,并且作为一个bean定义它。
public class CustomRestTemplateCustomizer implements RestTemplateCustomizer {
@Override
public void customize(RestTemplate restTemplate) {
().add(new CustomClientHttpRequestInterceptor());
}
}
CustomClientHttpRequestInterceptor 拦截器做一些基本的请求日志记录。
public class CustomClientHttpRequestInterceptor implements ClientHttpRequestInterceptor {
private static Logger LOGGER = LoggerFactory
.getLogger();
@Override
public ClientHttpResponse intercept(
HttpRequest request, byte[] body,
ClientHttpRequestExecution execution) throws IOException {
logRequestDetails(request);
return (request, body);
}
private void logRequestDetails(HttpRequest request) {
("Headers: {}", ());
("Request Method: {}", ());
("Request URI: {}", ());
}
}
现在在配置类中我们定义一个CustomRestTemplateCustomizer bean或者在我们的spring boot application类中。
@Bean
public CustomRestTemplateCustomizer customRestTemplateCustomizer() {
return new CustomRestTemplateCustomizer();
}
在这个配置中,在我们的应用中我们使用的每一个RestTemplate 都将设置自定义拦截器。
4、配置创建我们自己的RestTemplateBuilder
注意:文章到这里还没有完,由于篇幅限制,完整内容请到hongfu951博客上查看
完整内容URL地址:用RestTemplateBuilder配置一个RestTemplate【翻译】
欢迎访问:博客,查看更多文章