在創建RestTemplate的Bean時使用@LoadBalanced注解, 就可以自動配置為使用ribbon。如下面的示例所示:
@Configuration
public class MyConfiguration {
@LoadBalanced
@Bean
RestTemplate restTemplate() {
return new RestTemplate();
}
}
public class MyClass {
@Autowired
private RestTemplate restTemplate;
public String doOtherStuff() { //注意:代碼中的url要使用服務名,而不是主機名
String results = restTemplate.getForObject("http://stores/stores", String.class);
return results;
}
}
多個RestTemplate對象
@Configuration
public class MyConfiguration {
@LoadBalanced
@Bean
RestTemplate restTemplate() {
return new RestTemplate();
}
@Primary
@Bean
RestTemplate restTemplate() {
return new RestTemplate();
}
}
public class MyClass {
@Autowired
private RestTemplate restTemplate;
@LoadBalanced
@Autowired
private RestTemplate restTemplateLoadBalanced;
public String doOtherStuff() { //注意:代碼中的url要使用服務名,而不是主機名
String results = restTemplate.getForObject("http://stores/stores", String.class);
return results;
}
}
