1.远程调用
1.1、什么是远程调用
-
一个项目调用另一个项目模块(功能)
-
调用过程:模拟浏览器过程
1、打开浏览器窗口
2、确定访问路径(请求方式:get)
3、访问(执行),并获得结果
4、显示内容
5、关闭页面
1.2、调用方式
-
RPC
自定义数据格式的远程调用方式。更偏向于底层,通信速度快,效率高
---常见框架:dubbo
-
Http
采用Http协议远程调用方式,规定了数据传输的格式,缺点是消息封装臃肿,现在热门的Rest风格,就可以通过Http协议来实现。
---常见框架:HTTPClient、RestTemplate
1.3、区别
区别 | http | rpc |
---|---|---|
速度 | 较慢 | 快 |
难度 | 简单 | 复杂 |
灵活性 | 灵活,跨平台、跨语言 |
1、创建客户端,打开一个浏览器
2、创建GET请求实例,相当于输入一个请求地址
3、发送请求
4、判断状态码200
5、获得响应内容
6、释放资源
2.基于HTTP协议远程调用
2.1对比
- HttpClient更偏向于底层,学习时原理。相当于模拟浏览器。但操作比较繁琐。
- RestTemplate对整个请求进行简化
- 实际开发中RestTemplate整合HttpClient
2.2 RestTemplate 语法
//1 创建核心类
RestTemplate restTemplate = new RestTemplate();
//get请求
ResponseEntity<返回值类型> entity =
restTemplate.getForEntity('请求路径', 返回值类型.class );
//post请求
ResponseEntity<返回值类型> entity =
restTemplate.postForEntity('请求路径',请求参数对象,返回值类型.class);
//put请求
restTemplate.put('请求路径', 请求参数);
//delete请求
restTemplate.delete('请求路径')
2.3 配置类的使用
-
步骤一:编写配置类,将需要new的对象交于spring进行管理
@Configuration //配置类,spring boot会自动扫描 public class 类{ @Bean //spring将管理此方法创建的对象 public RestTemplate restTemplate(){ return new RestTemplate(); } }
-
步骤二:在任意位置,通过@Resource进行注入
public class AdminClient{ @Resource //因为配置类已经构建对象,此处自动注入 public RestTemplate restTemplate; //..使用即可 }