当前位置:首页
>> 核电技术聚变聚能设备 >> 【Spring Boot】如何通过RestTemplate获取另一个服务的接口返回信息,三星f589
【Spring Boot】如何通过RestTemplate获取另一个服务的接口返回信息,三星f589
cpugpu芯片开发光刻机
核电技术聚变聚能设备
7
文件名:【Spring Boot】如何通过RestTemplate获取另一个服务的接口返回信息,三星f589
【Spring Boot】如何通过RestTemplate获取另一个服务的接口返回信息
背景 在查询订单信息的时候,需要获取用户的信息,同时订单和用户分属于不同的服务中,并且服务的数据库的数据分开的,其直接连接数据库并操作数据库是不可以的。那我们可以通过RestTemplate对象请求另一个服务的API接口获取相关的响应数据,然后再封装返回在Spring Boot中我们可以先注册RestTemplate的Bean package com.app.order.config;import lombok.extern.slf4j.Slf4j;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.client.RestTemplate;/*** webmvc的相关配置** @author Administrator*/@Configuration@Slf4jpublic class WebMvcConfig {/*** 注入RestTemplate的Bean** @return 返回RestTemplate*/@Beanpublic RestTemplate restTemplate() {return new RestTemplate();}} 在使用的地方注入RestTemplate对象 /*** 结合@RequiredArgsConstructor进行构造器注入*/private final RestTemplate restTemplate; 在查询的方法处使用远程调用 /*** 根据id查询订单信息** @param id 订单id* @return 订单信息*/@GetMapping("/{id}")public ResultBean<OrderVo> getById(@PathVariable Long id) {log.info("根据id查询订单信息...");Order order = orderService.getById(id);if (order != null) {OrderVo orderVo = new OrderVo();BeanUtil.copyProperties(order, orderVo);// 远程查找用户服务获取用户名信息// url地址String url = "http://127.0.0.1:8080/users/" + order.getUserId();// 发起远程调用ResultBean resultBean = restTemplate.getForObject(url, ResultBean.class);if (resultBean != null) {UserVo userVo = new UserVo();BeanUtil.copyProperties(resultBean.getData(), userVo);orderVo.setUsername(userVo.getUsername());}return ResultBean.success(orderVo);}return ResultBean.error("没有查询到对应订单信息");}
同类推荐
-

【RS码1】系统RS码编码原理及MATLAB实现(不使用MATLAB库函数),飞利浦x530
查看 -

【RS码2】RS码的BM迭代译码原理详解及MATLAB实现(不使用MATLAB库函数【全部代码需私信另外付费获取】),点讯输入法
查看 -

【Rabbitmq】报错:ERROR CachingConnectionFactory Channel shutdown- channel error;,佳能单反450d
查看 -

【React - 前端】在React的前端页面中,判断某个变量值是否被定义?根据是否定义显示不同的内容?,海信e860手机
查看 -

【React】useReducer,艾诺mp4官网(艾诺mp4价格)
查看 -

【React】搭建React项目,三星e338(三星galaxyactive3)
查看 -

【React学习】React中的setState方法,步步高i8(react setstate)
查看 -

07315交易平台是否是骗人的-我充值一百块进去客服说不是vip不能购买商品还要再充值900才行,是骗人吗?
查看 -

0871区号是哪个地区的?(0871区号是哪个地区的)
查看