성명 식 서비스 호출 fegin

프로필
Feign 은 Http 클 라 이언 트 를 더 간단하게 만 드 는 성명 식 가짜 Http 클 라 이언 트 입 니 다.Feign 을 사용 하려 면 인 터 페 이 스 를 만 들 고 주석 을 달 아야 합 니 다.이것 은 삽입 가능 한 주해 특성 을 가지 고 있 으 며, Feign 주해 와 JAX - RS 주 해 를 사용 할 수 있다.Feign 은 삽입 가능 한 인 코더 와 디코더 를 지원 합 니 다.Spring Cloud Feign 은 넷 플 릭 스 Feign 을 기반 으로 Spring Cloud Ribbon 과 Spring Cloud Hystrix 를 통합 하고 성명 식 웹 서비스 클 라 이언 트 정의 방식 을 실현 했다.
요컨대
  • Feign 은 인터페이스 기반 주석
  • 을 사용 합 니 다.
  • Feign 은 ribbon
  • 을 통합 했다.
    2. feign 서 비 스 를 만 듭 니 다.
    声明式服务调用fegin_第1张图片
    pom 파일 을 만 들 고 다음 과 같이 수정 합 니 다.
    
    
        4.0.0com.vesus
        springcloud-fegin
        0.0.1-SNAPSHOT
        jarspringcloud-fegin
        Demo project for Spring Boot
            com.vesus
            springcloud-demo
            0.0.1-SNAPSHOT
        
            
                org.springframework.boot
                spring-boot-starter
            
            
            
                org.springframework.cloud
                spring-cloud-starter-eureka
            
            
            
                org.springframework.cloud
                spring-cloud-starter-feign
            
            
                org.springframework.boot
                spring-boot-starter-test
                test
            
        
            
                
                    org.springframework.boot
                    spring-boot-maven-plugin
                
            
        
    

    2. application. yml 프로필 을 만 들 고 등록 센터 주 소 를 추가 합 니 다.
    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8761/eureka/ #       
    spring:
      application:
        name: spring-cloud-fegin
    server:
      port: 8764

    3. 인터페이스 HelloService 를 정의 하고 @ FeignClient ("서비스 이름") 를 통 해 어떤 서 비 스 를 호출 할 지 지정 합 니 다.
    package com.vesus.springcloudfegin.service;
    ​
    import org.springframework.cloud.netflix.feign.FeignClient;
    import org.springframework.web.bind.annotation.RequestMapping;
    ​
    @FeignClient(value = "spring-cloud-service")
    //springcloud-service         
    public interface HelloService {
    ​
        @RequestMapping(value = "/hello") //springcloud-service        
        public String sayHello() ;
    }

    4, 컨트롤 러 HelloWordController 가입
    package com.vesus.springcloudfegin.controller;
    ​
    ​
    import com.vesus.springcloudfegin.service.HelloService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    ​
    @RestController
    public class HelloController {
    ​
        @Autowired
        HelloService helloService ;
    ​
        @RequestMapping(value = "/hello")
        public String sayHello(){
            return  helloService.sayHello() ;
        }
    }
    ​

    5. 입구 방법 은 @ EnableFeignClient 에 가입 하고 fegin 지원 을 증가 합 니 다.
    package com.vesus.springcloudfegin;
    ​
    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;
    ​
    @SpringBootApplication
    @EnableDiscoveryClient
    @EnableFeignClients
    public class SpringcloudFeginApplication {
    ​
        public static void main(String[] args) {
            SpringApplication.run(SpringcloudFeginApplication.class, args);
        }
    }

    프로젝트 시작, 접근 http://localhost:8764/hello ,Hello World 보이 기.
    코드:https://gitee.com/vesus198/springcloud-demo/tree/master/springcloud-fegin

    좋은 웹페이지 즐겨찾기