SpringCloud——服务拆分
Posted 酒徒ᝰ.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud——服务拆分相关的知识,希望对你有一定的参考价值。
CSDN话题挑战赛第2期
参赛话题:学习笔记
学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐,不如众乐乐,把知识讲给更多的人听,何乐而不为呢?
个人名片:
博主:酒徒ᝰ.
个人简介:沉醉在酒中,借着一股酒劲,去拼搏一个未来。
本篇励志:这句话不是很文雅,彻底鄙视那些害怕别人超越自己而拒绝回答别人问题的程序员。
此笔记基于B站黑马程序员Java《SpringCloud微服务技术栈》,SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 点击观看
目录
一、初步使用
从资料里的压缩包直接解压,然后使用解压。
注意:application.yml中的spring.datasource.password
提示:密码记得改成自己的密码。
二、案例
1.根据订单id查询订单功能
这里的"user"为null,我们应该根据userId查询到user的信息并显示。
- 注册RestTemplate
在(配置文件)启动类中配置RestTemplate
/**
* 注册RestTemplate
* @return
*/
@Bean
public RestTemplate restTemplate()
return new RestTemplate();
- 调用RestTemplate
/**
* 查询user信息
* @param orderId
* @return
*/
@GetMapping("orderId")
public Order queryOrderByUserId(@PathVariable("orderId") Long orderId)
//1.根据id查询订单
Order order = orderService.queryOrderById(orderId);
//2.获取订单中的userid
Long userId = order.getUserId();
//3.设置查询user的地址
String url = "http://localhost:8081/user/" + userId;
//3.1查询user
User user = restTemplate.getForObject(url, User.class);
//4.封装查询结果
order.setUser(user);
return order;
注意:url中的地址是user地址,且端口是8081
三、知识点
- RestTemplate
进行地址查询返回相应的数据信息。
有Spring提供的HTTP请求工具,提供常见的Rest请求。
restTemplate.getForObject(url, map, User.class);
分析:
请求方式:GET
请求路径:url
请求参数:map(其中存放着请求参数key/value)
返回类型:User
以上是关于SpringCloud——服务拆分的主要内容,如果未能解决你的问题,请参考以下文章
SpringCloud学习笔记-p1(服务拆分&远程调用&Eureka注册中心&Ribbon负载均衡)
1.SpringCloud -- 从单体架构到微服务架构代码拆分(maven 聚合)