jav*_*ovy 9 java rest spring spring-mvc
据我所知,这RestTemplateBuilder是一种工厂RestTemplate.我有一些关于使用它的问题:
通常在示例中,@Configuration类中有类似的东西:
@Bean
public RestTemplate getRestClient() {
RestTemplate restClient = new RestTemplate();
...
return restClient;
}
Run Code Online (Sandbox Code Playgroud)
不RestTemplate应该每个@Service类实例化?如果是这样,如何定制呢?
Spring引用说RestTemplateBuilder应该通过自定义RestTemplateCustomizer.如何使用一个构建器从许多IP地址管理许多URI?
如何将BasicAuthenticationglobaly 添加到所有RestTemplatesvia RestTemplateBuilder,这是一个好习惯吗?
感谢帮助.
更新:
我的应用程序从不同的IP和URL的许多服务器调用休息服务 - 所以对我来说逻辑上就是我有很多的情况RestTemplates.
我正在尝试为RestTemplateBuilder每个服务器设置一个工厂() - 比如服务器A,B,C.我知道如何添加基本身份验证.但是,例如,当我想要服务器A的基本身份验证而不是服务器B的基本身份验证时?
我想RestTemplateBuilder每个服务器有一个.我不想手动执行此操作 - 我更喜欢使用Spring机制.
有帮助吗?
不,您不需要,通常您将拥有休息模板实例,并且您将传递不同的URL,并且每次都相应地请求参数.
String result = restTemplate.getForObject("http://example.com/hotels/{hotel}/bookings/{booking}", String.class, vars);
Foo foo = restTemplate.getForObject(fooResourceUrl + "/1", Foo.class);
Run Code Online (Sandbox Code Playgroud)spring doc中的描述性示例,您可以向构建器添加任意数量的自定义程序
public class ProxyCustomizer implements RestTemplateCustomizer {
@Override
public void customize(RestTemplate restTemplate) {
HttpHost proxy = new HttpHost("proxy.example.com");
HttpClient httpClient = HttpClientBuilder.create()
.setRoutePlanner(new DefaultProxyRoutePlanner(proxy) {
@Override
public HttpHost determineProxy(HttpHost target,
HttpRequest request, HttpContext context)
throws HttpException {
if (target.getHostName().equals("192.168.0.5")) {
return null;
}
return super.determineProxy(target, request, context);
}
}).build();
restTemplate.setRequestFactory(
new HttpComponentsClientHttpRequestFactory(httpClient));
}
}
Run Code Online (Sandbox Code Playgroud)任何RestTemplateCustomizer bean都将自动添加到自动配置的RestTemplateBuilder中.此外,通过调用additionalCustomizers(RestTemplateCustomizer ...)可以创建一个带有其他自定义程序的新RestTemplateBuilder.
@Bean
public RestTemplateBuilder restTemplateBuilder() {
return new RestTemplateBuilder()
.rootUri(rootUri)
.basicAuthorization(username, password);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27453 次 |
| 最近记录: |