怎么用spring cloud service-id 进行调用接口


 

 

 

这里最关键的就是加上@LoadBalanced

 1 @SpringBootApplication
 2 public class ConsumerMovieApplication {
 3   @Bean
 4   @LoadBalanced  -- 如果这行代码注释了,则下面的controller则调不通
 5   public RestTemplate restTemplate() {
 6     return new RestTemplate();
 7   }
 8 
 9   public static void main(String[] args) {
10     SpringApplication.run(ConsumerMovieApplication.class, args);
11   }
12 }
@RequestMapping("/movies")
@RestController
public class MovieController {
  @Autowired
  private RestTemplate restTemplate;

  @GetMapping("/users/{id}")
  public User findById(@PathVariable Long id) {
    // 这里用到了RestTemplate的占位符能力
    User user = this.restTemplate.getForObject(
      "http://microservice-provider-user/users/{id}", -- 如果上面的@LoadBalanced 注释了会调不通
      User.class,
      id
    );
    // ...电影微服务的业务...
    return user;
  }
}

 

 

把@LoadBalanced注释了,则出现的错误如下:

 

 所以这个注解必须要在RestTemplate这个类中加上。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM