SpringCloud(一.1)微服务远程调用 -- RestTemplate

项目结构

 主项目cloud-demo下有两个子项目(微服务),每个项目都代表独立模块,都有自己独立的数据库。

每个项目(微服务)只负责自己模块的数据,互不干涉。

 

 

场景描述:

根据订单ID查询订单详情的同时,把订单所属的用户信息一并带回。

这里就涉及微服务之间的相互调用

 

实现:

1、注册RestTemplate

在订单微服务项目中的 Application启动类中注册RestTemplate

复制代码
/*
    * 创建RestTemplate并注入Spring容器
    * */
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
注册RestTemplate
复制代码

复制代码
@RestController
@RequestMapping("order")
public class OrderController {

   @Autowired
   private OrderService orderService;
   @Autowired
   private RestTemplate restTemplate;

    @GetMapping("{orderId}")
    public Order queryOrderByUserId(@PathVariable("orderId") Long orderId) {
        // 根据id查询订单
        Order order = orderService.queryOrderById(orderId);
        //利用RestTemplate发送http请求,根据用户ID查询用户
        //url路径
        String url ="http://localhost:8081/user/"+order.getUserId();
        User user = restTemplate.getForObject(url, User.class);
        //赋值
        order.setUser(user);
        return order;
    }
}
OrderController
复制代码

用户微服务中提供了相关接口截图:

 

 

 

效果展示:

 总结:

 

posted @   一介桃白白  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2021-03-18 Lombok中关于@Data的使用
点击右上角即可分享
微信分享提示