在創建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; } }