RestTemplate的三种使用方式
SpringCloud中服务之间的两种调用RESTful接口通信的方式:
- RestTemplate
- Feign
RestTemplate是一个Http客户端,类似于HTTPClient,org但比HTTPClient更简单。我们通过RestTemplate来简单演示一下服务之间的调用,我们使用两个服务来做演示。一个商品服务,一个订单服务。首先创建一个商品服务工程:
选择相应的依赖:
项目创建完成后,编辑配置文件,需要配置服务的名称以及服务注册中心的地址:
spring:
application:
name: product
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
instance:
prefer-ip-address: true
注:如果对eureka还不太清楚的话,可以参考我的另一篇关于eureka的文章:Spring Cloud Eureka-服务注册与发现
不要忘了在启动类中,加上@EnableEurekaClient
注解:
package org.zero.example.product;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@SpringBootApplication
@EnableEurekaClient
public class ProductApplication {
public static void main(String[] args) {
SpringApplication.run(ProductApplication.class, args);
}
}
接着创建一个controller类,用于模拟商品列表接口,提供给订单服务调用。代码如下:
package org.zero.example.product.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/**
* @program: product
* @description: product demo
* @author: 01
* @create: 2018-09-06 22:09
**/
@RestController
@RequestMapping("/product")
public class ProductController {