1.RestTemplate
Spring RestTemplate 是 Spring 提供的用于访问 Rest 服务的客户端,RestTemplate 提供了多种便捷访问远程http服务的方法,能够大大提高客户端的编写效率,所以很多客户端比如 AndroID或者第三方服务商都是使用 RestTemplate 请求 restful 服务。
定义一个RestTemplate的Bean,设置成LoadBalanced
@Configuration
public class RestTemplateConfiguration {@Bean@LoadBalancedpublic RestTemplate restTemplate(){ return new RestTemplate(); }}
调用时注入这个bean
@autowiredprivate RestTemplate restTemplate;public String getProduct(string productID) { String response=restTemplate.getForObject("http://Product/getProduct/" + productID,String.class); //Product为应用名字 return response;}
2.Fegin
Feign是一种负载均衡的http客户端,使用Feign调用API就像调用本地方法一样,从避免了 调用目标微服务时,需要不断的解析/封装Json 数据的繁琐。
Fegin是一个声明似的web服务客户端,它使得编写web服务客户端变得更加容易。使用Fegin创建一个接口并对它进行注解。它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Feign还支持可插拔的编码器与解码器,Spring Cloud 增加了对 Spring MVC的注解,Spring Web 默认使用了httpMessageConverters,Spring Cloud 集成 Ribbon 和 Eureka 提供的负载均衡的http客户端 Feign。
引入依赖
<dependency> <groupID>org.springframework.cloud</groupID> <artifactID>spring-cloud-starter-feign</artifactID></dependency>
启动类上添加注解 @EnableFeignClIEnts
定义接口
@FeignClIEnt(name= "Product") //应用名称public interface ProductClIEnt { @GetMapPing("/getProduct") public String getProduct(String productID);}
在调用的地方 注入
@autowired private ProductClIEnt clIEnt; @GetMapPing(value = "getProduct") public String getProduct(String productID) { return clIEnt.getProduct(productID); }总结
以上是内存溢出为你收集整理的服务间的通信 RestTemplate和Feign全部内容,希望文章能够帮你解决服务间的通信 RestTemplate和Feign所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)