3 RestTemplate

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改進之處

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章