公众号merlinsea
声明:在微服务领域中不太建议使用spring自带的微服务调用工具类RestTemplate 因为: 服务之间的IP信息写死, 服务之间无法提供负载均衡; 多个服务直接关系调用维护复杂 ;请求调用的client接口和业务代码耦合高;可以考虑使用RPC框架的feign client实现微服务之间的调用,这里我们介绍一下spirngcloud中自带的RestTemplate使用示例。
RestTemplate:是springframework.web.client提供的一个可以发起客户端访问请求的一款工具,可以发起http请求。
本例的使用场景:用户发起下单请求的时候,后台需要在订单微服务中调用视频微服务的功能。
1、配置订单微服务RestTemplate的实例,并交由spring ioc容器管理
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.client.RestTemplate; @Configuration public class RestTemplateConfig { @Bean public RestTemplate getRestTemplate(){ return new RestTemplate(); } }
2、Controller下单接口中通过RestTemplate调用视频微服务的功能(核心)
@RestController @RequestMapping("api/v1/order") public class OrderController { @Autowired private RestTemplate restTemplate; @GetMapping("save") public VideoOrder save(@RequestParam("id") int id){ Video video = restTemplate.getForObject("http://localhost:7000/api/v1/video/find_by_id/"+id,Video.class); VideoOrder videoOrder =new VideoOrder(); videoOrder.setVideoId(video.getId()); videoOrder.setVideoImg(video.getCoverImg()); videoOrder.setVideoTitle(video.getTitle()); videoOrder.setOutTradeNo("234543835789"); return videoOrder; } }
关于leetcode算法训练营:
加我微信号私聊参加训练营,尤其是想进入大厂工作的同学,算法是绕不过去的坎,我自己花了三年时间刷算法,总结思路,刷各种数据结构课程,加入我的训练营,我手把手以在线直播课的形式带你理思路,手把手带你写代码,让你真正体会算法之美~,同时遇到不明白的地方可以直接课上和我沟通,彻底解决你的代码困难症~
本人用c++刷了800道左右的算法,java语言刷了600道左右的算法题,并对这些题做了详细的个人总结。本科期间系统学习了数据结构与算法课程,同时考研过程中写完了率辉主编的《2020年数据结构高分笔记》和《数据结构1000题》,看完的视频包括《mooc浙大数据结构国家精品课程》和《王道考研408数据结构课程》,《王道2019年算法题讲解视频》,最终以初试专业第三名进入了北理工软件工程专业。熟悉并掌握常见的数据结构,比如链表、数组、树、图、队列、堆栈等等,精通数据结构教材中的所有算法,比如常见的遍历算法、动态规划,递归,回溯,剪枝,并查集,最短路径,拓扑排序等,所以快加入训练营吧,我们一起进步
奔跑的小梁,公众号:梁霖编程工具库我决定了,算法文档开源!!