Sprignboot服务之间通讯的两种Httprestful形式的调用

Sprignboot服务之间通讯的两种Httprestful形式的调用

1:使用springboot提供的RestTemplate对象。(类似于HttpClient)

--用法1

RestTemplate template = new RestTemplate();

//get请求

String response = Template.getForObject(url,String.class); //String.class为返回值的类型

//post请求

String response = Template.postForObject(url,Object param,String.class); //String.class为返回值的类型

缺点:请求地址写死了,扩展性较差,且在集群环境中无法做到负载均衡。

--用法2

使用SpringCloud提供的LoadBanlenceClient.基于用法1

@Resource

private LoadBanlenceClient loadBanlence; //注入LoadBanlenceClient对象

ServerInstance instance = loadBanlence. //通过loadBanlenceClient获取一个服务实例(针对集群环境,解决了用法1的缺点)

String host = instance.getHost();  //通过实例获取主机ip

String port = instance.getPort();  //获取端口

====接下来就结合用法1来实现====

String url = String.format("http://%s:%s/uri",host,port);//通过ip和端口构造url,uri为你需要调用的服务uri

String response = restemplate.getForObject("url",String.class);

终极写法

写一个restemplate的配置

@Configure

public RestTemplateConfig{

@Bean

@LoadBanlence

public RestTemplate getTemplate(){

      return new RestTemplate();

}

}

直接注入RestTemplate即可

2:使用SpringCloud提供的feign组件

--用法:接口加注解

@Feign("服务名称")

public interface Client{

@GetMapping("/getUserInfo")//对应目标接口的请求方式和映射路径

String getUserInfo(@RequestParam("id") String id);//String 为目标接口的返回值类型,getUserInfo名称任意,id为目标接口需要的参数

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值