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

发布于:2025-08-06 ⋅ 阅读:(18) ⋅ 点赞:(0)

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

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

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

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

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

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


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

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

  1. 实现调用

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

@Service
public class OrderService {
    @Autowired
    private OrderMapper orderMapper;

    @Autowired
    private 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来获取到资源,并且返回值的格式是ProductInfo
        orderInfo.setProductInfo(productInfo);
        return orderInfo;
    }
}

网站公告

今日签到

点亮在社区的每一天
去签到