SpringCloud 中 RestTemplate 的简单应用
RestTemplate的简单说明:
在很久以前程序员想要通过程序内部访问其他服务需要用HttpClient,但是经过时间的推移,Spring家族弄出了RestTemplate.
简单实用介绍开始.
1.建立一个简单的maven项目,在建立的maven总项目中,新建两个模块,A与B, A为消费端,B为服务端. A端口: 80 , B端口 8001.
2.在A消费端的项目中新建一个名为: ApplicationContextConfig 的类在包config下.代码如下
package com.atguigu.springcloud.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
@Configuration
public class ApplicationContextConfig {
@Bean
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
然后新建A消费端Controller类,代码如下
package com.atguigu.springcloud.controller;
import com.atguigu.springcloud.entities.CommonResult;
import com.atguigu.springcloud.entities.Payment;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
@RestController
@Slf4j
public class OrderController {
public static final String PAYMENT_URL = "http://localhost:8001";
@Resource
private RestTemplate restTemplate;
@GetMapping("/consumer/payment/create")
public CommonResult create(Payment payment){
log.info("restTemplate 进入成功");
return restTemplate.postForObject(PAYMENT_URL+"/payment/create",payment,CommonResult.class);
}
@GetMapping("/consumer/payment/get/{id}")
public CommonResult getPayment(@PathVariable("id") Long id){
return restTemplate.getForObject(PAYMENT_URL+"/payment/get/"+id,CommonResult.class);
}
}
启动Postman测试接口.
结果成功.
具体详细学习内容,请参见尚硅谷B站视频,链接(点击传送~):
https://www.bilibili.com/video/BV18E411x7eT?p=12



