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