3. 성명 식 RESTful 클 라 이언 트: Spring Cloud OpenFeign

OpenFeign 프로필 OpenFeign 은 성명 식 RESTful 네트워크 요청 클 라 이언 트 입 니 다.OpenFeign 은 주석 이 있 는 함수 정보 에 따라 네트워크 요청 템 플 릿 을 구성 합 니 다. 네트워크 요청 을 보 내기 전에 OpenFeign 은 함수 의 매개 변수 값 을 요청 템 플 릿 에 설정 합 니 다.1. Eureka 서비스 등록 센터 를 구축 하여 아이디어 에서 SpringBoot 프로젝트 를 만 들 고 주로 다음 과 같이 의존 합 니 다.

        1.8
        Greenwich.RELEASE
    

    
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-server
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    

시작 클래스 에 주석 @ EnableEureka Server 를 추가 합 니 다. 코드 는 다음 과 같 습 니 다.
//              ,          
@EnableEurekaServer
@SpringBootApplication
public class EurakeServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurakeServerApplication.class, args);
    }

}

application. yml 프로필 에 설정 을 추가 하고 등록 센터 의 포트 와 표 지 를 설정 합 니 다.
server:
  port: 8761
eureka:
  instance:
    hostname: standalone
    instance-id: ${spring.application.name}:${vcap.application.instance-id:${spring.application.instance-id:${random.value}}}
  client:
    register-with-eureka: false #        Eureka Server       
    fetch-registry: false  #        Eureka Server      
    service-url:    #Eureka Server       ,  Client Server  
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

spring:
  application:
    name: eureka-service

2. Euraka 서비스 제공 자 를 구축 하여 아이디어 에서 SpringBoot 프로젝트 를 만 들 고 주로 다음 과 같이 의존 합 니 다.

        1.8
        Greenwich.RELEASE
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    

시작 클래스 는 다음 과 같 습 니 다:
@SpringBootApplication
public class EurakeClient01Application {

    public static void main(String[] args) {
        SpringApplication.run(EurakeClient01Application.class, args);
    }

}

application. yml 설정 은 다음 과 같 습 니 다.
server:
  port: 8762
eureka:
  instance:
    hostname: client
    instance-id: ${spring.application.name}:${vcap.application.instance-id:${spring.application.instance-id:${random.value}}}
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/  #          

spring:
  application:
    name: feign-service

controller 패 키 지 를 새로 만 들 고 서 비 스 를 제공 하 는 인 터 페 이 스 를 추가 합 니 다. 코드 는 다음 과 같 습 니 다.
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/*
 * @Author chencundeng
 * @Description //TODO
 * @Date 2019/2/23
 **/
@RequestMapping("/feign-service")
@RestController
public class FeignServiceController {

    @GetMapping("/say-hello/{name}")
    public String sayHello(@PathVariable("name") String name){
        return "hello ".concat(name).concat("!");
    }

}

3. Feign 서비스 소비 자 는 아이디어 에 구축 하여 SpringBoot 프로젝트 를 만 들 고 주로 다음 과 같이 의존 합 니 다.

        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        
        
            org.springframework.cloud
            spring-cloud-starter-openfeign
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    

시작 클래스 는 다음 과 같 습 니 다:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;

@SpringBootApplication
@EnableFeignClients
public class FeignClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(FeignClientApplication.class, args);
    }

}


application. yml 설정 은 다음 과 같 습 니 다.
server:
  port: 8763
eureka:
  instance:
    hostname: client
    instance-id: ${spring.application.name}:${vcap.application.instance-id:${spring.application.instance-id:${random.value}}}
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/  #        

spring:
  application:
    name: feign-client

controller 패 키 지 를 새로 만 들 고 Feign 클 라 이언 트 인터페이스 와 서비스 클래스 를 추가 합 니 다. 코드 는 다음 과 같 습 니 다.
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

@FeignClient("feign-service")  //           
@RequestMapping("/feign-service")
public interface FeignServiceClient {

    @GetMapping("/say-hello/{name}")
    public String sayHello(@PathVariable("name") String name);

}
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

/*
 * @Author chencundeng
 * @Description //TODO
 * @Date 2019/2/22
 **/
@RestController
public class FeignClientController {

    @Autowired
    private FeignServiceClient feignServiceClient;

    @GetMapping("/say-hello/{name}")
    public String sayHello(@PathVariable("name") String name){
        return  feignServiceClient.sayHello(name);
    };


}

4. OpenFeign 클 라 이언 트 가 상기 세 개의 서 비 스 를 구축 한 후에 세 개의 서 비 스 를 순서대로 시작 하고 주 소 를 입력 합 니 다.http://127.0.0.1:8762/say- hello / fegn 에서 출력 문 구 를 볼 수 있 습 니 다.
5. 예 소스 주 소 는 다음 과 같다.https://gitee.com/mingzhishuyuan/spring-cloud.git

좋은 웹페이지 즐겨찾기