Spring RestTemplate as a Load Balancer Client
可以使用胶带方式来自动配置RestTemplate。可以使用@Bean and @LoadBalanced注解来创建一个可以进行负载均衡的RestTemplate
警告
RestTemplate不在会通过自动配置来自定创建,它必须通过独立的应用来创建
@Configuration
public class MyConfiguration {
@LoadBalanced
@Bean
RestTemplate restTemplate() {
return new RestTemplate();
}
}
public class MyClass {
@Autowired
private RestTemplate restTemplate;
public String doOtherStuff() {
String results = restTemplate.getForObject("http://stores/stores", String.class);
return results;
}
}
这个URI使用的是虚拟主机名称(service名称而不是主机名称)。通过Ribbon客户端创建一个完全的物理地址。可以参考RibbonAutoConfiguration的细节了解如何启动RestTemplate