当前位置: 首页 > news >正文

【Spring Cloud】-- RestTeplate实现远程调用

实现远程调用有很多种方式,这里我们使用RestTemplate来进行实现。

REST :表现层资源状态转移(资源在网络中以某种表现形式进行状态转移),是一种软件架构风格,

状态转移:数据状态的变化。
表现层:资源的表现形式。
资源:网络上的所有事务都可以抽象为资源。

RESTful:是满足REST设计风格是程序或接口。

RESTful风格特征:其统一接口可以进行对资源进行操作,比如获取、删除、创建、修改。这些操作正好对应上HTTP协议提供的GET、POST、PUT和DELETE等方法。但是这种风格的接口,只能从接口上定义其资源,但是无法通过接口了解具体对资源进行了什么操作。

RestTemplate: 是Spring提供的,用来封装HTTP调用,并强制使用RESTful风格,它会处理HTTP连接和关闭,只需要使用者童工资源的地址和参数即可。


  1. 定义RestTemplate
@Configuration
public class BeanConfig {@Beanpublic RestTemplate restTemplate() {return new RestTemplate();}
}

定义bean可以使用五大注解或者@Bean的方式来定义,但是RestTemplate是第三方的类,五大注解只能修饰自己的类,所以我们使用@Bean来进行修饰。

  1. 实现调用

这里我以订单系统和商品服务为例:

@Service
public class OrderService {@Autowiredprivate OrderMapper orderMapper;@Autowiredprivate RestTemplate restTemplate;public OrderInfo selectOrderById(Integer orderId) {OrderInfo orderInfo = orderMapper.selectOrderById(orderId);String url = "http://127.0.0.1:9090/product/" + orderInfo.getProductId();ProductInfo productInfo = restTemplate.getForObject(url, ProductInfo.class);//通过url来获取到资源,并且返回值的格式是ProductInfoorderInfo.setProductInfo(productInfo);return orderInfo;}
}
http://www.lryc.cn/news/611205.html

相关文章:

  • 【机器学习深度学习】 知识蒸馏
  • CodeBuddy IDE 使用测评——半小时做一个web可视化数据工具
  • 李宏毅深度学习教程 第12-13章 对抗攻击 + 迁移学习transfer learning
  • 深入理解Spring Boot自动配置原理
  • 解决IntelliJ IDEA 项目名称后带中括号问题(模块名不一致)
  • 解锁高效敏捷:2025年Scrum项目管理工具的核心应用解析
  • 数据结构---Makefile 文件(格式、文件变量、调用、伪目标)、gcc编译的四个步骤、双向链表(概念、作用、应用)
  • RAGFlow 0.20.0 : Multi-Agent Deep Research
  • 机器学习Adaboost算法----SAMME算法和SAMME.R算法
  • 机器学习③【模型训练、K近邻算法(KNN)、贝叶斯算法(Navie Bayes)、模型调优】
  • 无刷电机控制 - STM32F405+CubeMX+HAL库+SimpleFOC05,完成霍尔传感器的校准
  • 智慧社区(八)——社区人脸识别出入管理系统设计与实现
  • Java面试宝典:对象的内存布局
  • 从数据洪流到智能决策:Apache IoTDB如何重塑工业物联网的DB+AI新范式
  • 折半枚举:四数之和为零
  • 深入解析数据结构之顺序表
  • 【经验记录贴】在windows系统中启动服务
  • 详细讲述优雅草蜻蜓I即时通讯私有化中xmpp服务中的tigase的角色与作用深度分析-卓伊凡|bigniu
  • 【轮播图】H5端轮播图、横向滑动、划屏效果实现方案——Vue3+CSS position
  • 从开发到售后:Q-Tester基于ODX标准的统一诊断平台
  • 闸机控制系统从设计到实现全解析:第 4 篇:Redis 缓存与分布式锁实现
  • STM32设置GPIO模式
  • Dify工作流三剑客:参数提取、变量赋值与聚合详解
  • Starrocks中的 Query Profile以及explain analyze及trace命令中的区别
  • Linux系统:基础I/O
  • 基于python的二手车价格预测及可视化系统,采用集成学习算法和diango框架
  • [按键精灵]
  • Pytorch基础入门2
  • AlmaLinux8 平替 manylinux_2_28-python 的 GPG密钥管理、安装 cuda sdk
  • gRPC Keepalive 机制详解与最佳实践