美文网首页
Feign——声明式调用

Feign——声明式调用

作者: JacobY | 来源:发表于2018-01-15 17:30 被阅读0次

    1 Feign简介

    Feign是Netflix开发的声明式、模板化的HTTP客户端,在Spring Cloud中,对Feign添加了Spring MVC的支持,并且整合了Ribbon和Eureka。

    2 如何使用Feign

    1. 首先添加相应的依赖:
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-eureka</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-feign</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
    1. 创建一个接口,用注解@FeignClient声明为Feign Client
    @FeignClient(name = "eureka-client-demo")
    public interface Client {
    
    
        @GetMapping("/hello")
        public String hello();
    } 
    

    name属性用来指定应用名称,用于创建Ribbon负载均衡器。还可以用url属性指定url。

    1. 在启动类中添加@EnableFeignClients注解
    @EnableDiscoveryClient
    @EnableFeignClients
    @SpringBootApplication
    public class FeignDemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(FeignDemoApplication.class, args);
        }
    }
    
    1. 配置(这里其实是Eureka的配置):
    server:
      port: 8004
    spring:
      application:
        name: feign-demo
    eureka:
      client:
        service-url:
          defaultZone: http://localhost:8001/eureka/
      instance:
        prefer-ip-address: true
    
    1. 使用的时候直接调用Feign Client 声明的方法即可。
    @RestController
    public class Controller {
    
    
        @Autowired
        private Client client;
    
    
        @GetMapping("/hello")
        public String hello() {
            return client.hello();
        }
    }
    

    相关文章

      网友评论

          本文标题:Feign——声明式调用

          本文链接:https://www.haomeiwen.com/subject/trddoxtx.html