天天看点

微服务使用RestTemplate实现服务间调用(get请求)

微服务使用RestTemplate实现服务间调用(get请求)

在初始阶段,我们都是用RestTemplate作为服务间调用的方法。但是慢慢这种方式已经被废弃掉了。我们通过实现get请求做记录。

@Component
public class UserUtil {
 
    @Autowired
    RestTemplate restTemplate;
 
    /**
     * 获取用户信息
     * 
     * @return
     */
    public User getUser() {
        User resultVO = new User();
        // 将请求头和请求参数设置到HttpEntity中
        // 获取上下文与request对象
        RequestAttributes requsetAttributes = RequestContextHolder.currentRequestAttributes();
        HttpServletRequest request = ((ServletRequestAttributes)requsetAttributes).getRequest();
        // 获取token
        String token = request.getHeader("token");
        Map<String, Object> params = new HashMap<>();
        params.put("token", token);
        // 地址
        String url = "http://服务名/接口地址?参数";
        // 发送feign请求,参数(地址,返回参数,入参)
        resultVO = restTemplate.getForObject(url, User.class, params);
        return resultVO;
    }
}      

这里有个坑 入参一定要这么写

String token = request.getHeader("token");
        Map<String, Object> params = new HashMap<>();
        params.put("token", token);      

继续阅读