微服务-SpringCloud模块相互调用

我要查1的过程中,把2的信息一并返回,怎么实现?

在服务调用关系中,会有两个不同的角色:

  • 服务提供者:被其它微服务调用的服务。(提供接口给其它微服务)

  • 服务消费者:调用其它微服务的服务。(调用其它微服务提供的接口)

  • 服务提供者与服务消费者的角色并不是绝对的,而是相对于业务而言

我们需要在order-service中向user-service发起一个http的请求

  • HttpClient

Apache的一个三方网络框架,网络请求做了完善的封装,api众多,用起来比较方便,开发快。但是代码复杂

  • OkHttp

高效的HTTP客户端,它能允许同一ip和端口的请求重用一个socket,这样能够降低网络连接的时间

  • RestTemplate

Spring 提供的用于访问Rest服务的客户端,提供多种便捷访问远程Http服务的方法,大大提高客户端的编写效率

spring-web环境中已经提供了RestTemplate,不需要单独导入,直接注入到IOC容器使用即可

——————————————————————————————————————————————

    • 启动类就是一个配置类,因此可以在启动类中向IOC容器注入 RestTemplate 对象

2.在OrderService中调用用户微服务UserController中的方法,根据id获取user对象
@Service
public class OrderService {

    @Autowired
    private OrderMapper orderMapper;

    @Autowired
    private RestTemplate restTemplate;

    public Order findOrderByUserId(Long orderId) {
        // 1.查询订单
        Order order = orderMapper.selectById(orderId);
        // 2.调用用户微服务
        String url = "http://localhost:8081/user/" + order.getUserId();
        User user = restTemplate.getForObject(url, User.class);
        // 3.封装用户到订单中
        order.setUser(user);
        // 4.返回
        return order;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值