3.1RestTemplate調用微服務
·
3.2 代碼案例
訂單服務調用商品服務
商品服務端
package xx.study.sc.controller;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/product")
public class ProductController {
@RequestMapping(value = "/{name}",method = RequestMethod.GET)
public String say(@PathVariable String name){
String returnVal="歡迎"+name+"學習Spring Cloud!!!";
return returnVal;
}
@RequestMapping(value = "/buy",method = RequestMethod.GET)
public String buy(@RequestParam String name){
String returnVal=name+Math.random();
return returnVal;
}
}
訂單服務端
package xx.study.sc.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
@RestController
@RequestMapping("/order")
public class OrderController {
//注入
@Autowired
private RestTemplate restTemplate;
/**
* 調用商品服務
* 也可以使用java urlconnection httpclient okhttp
* @param name
* @return
*/
@RequestMapping(value = "/buy",method = RequestMethod.GET)
public String buy(@RequestParam String name){
name=restTemplate.getForObject("http://localhost:9001/product/buy?name= "+name,String.class);
String returnVal="收到"+name+"!!!";
return returnVal;
}
@RequestMapping(value = "/say",method = RequestMethod.GET)
public String sayHello(){
String returnVal="Hello!!!";
return returnVal;
}
}
注入RestTemplate
package xx.study.sc;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
public class OrderApplication {
/**
* 使用spring 提供的RestTemplate發送http請求到商品服務
* 1。創建RestTemplate對象交給容器管理
* 2。在使用的時候,調用其方法完成操作
*
*/
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class);
}
}
3.3改進之處