Spring Cloud Feign 总结

 

Spring Cloud中, 服务又该如何调用 ?

各个服务以HTTP接口形式暴露 , 各个服务底层以HTTP Client的方式进行互相访问。

SpringCloud开发中,Feign是最方便,最为优雅的服务调用实现方式。

Feign 是一个声明式,模板化的HTTP客户端,可以做到用HTTP请求访问远程服务就像调用本地方法一样。简单搭建步骤如下 :

1. 首先加入pom.xml

<dependency>     <groupId>org.springframework.cloud</groupId>     <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>     </dependency> <dependency>     <groupId>org.springframework.cloud</groupId>     <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>

2. 主类上面添加注解@EnableFeignClients,该注解表示当程序启动时,会进行包扫描,默认扫描所有带@FeignClient注解的类进行处理

package name.ealen;  import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.netflix.feign.EnableFeignClients;  /**  * Created by EalenXie on 2018/10/12 18:24.  */ @SpringBootApplication @EnableFeignClients @EnableDiscoveryClient public class FeignOpenClientApplication {      public static void main(String[] args) {         SpringApplication.run(FeignOpenClientApplication.class,args);     } }

3. 简单配置appliation.yml 注册到Eureka Server。

server:   port: 8090 spring:   application:     name: spring-cloud-feign-openClient eureka:   client:     service-url:       defaultZone: http://localhost:8761/eureka/

4. 使用@FeignClient为本应用声明一个简单的能调用的客户端。为了方便,找个现成的开放接口,比如Github开放的api,GET /search/repositories。

GitHub接口文档 : https://developer.github.com/v3/search/#search-repositories

package name.ealen.client;  import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam;  /**  * Created by EalenXie on 2019/1/9 11:28.  */ @FeignClient(name = "github-client", url = "https://api.github.com"

                    
                
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信