기업 분포 식 마이크로 서비스 클 라 우 드 SpringCloud SpringBoot mybatis (3) 서비스 소비자 (Feign)
요컨대
Feign 은 인 터 페 이 스 를 기반 으로 하 는 주 해 를 사용 합 니 다. Feign 은 ribbon 2 를 통합 시 켰 고 준비 작업 은 이전 절 을 계속 사용 하 는 프로젝트 를 통 해 eureka - server 를 시작 합 니 다. 포트 는 8761 입 니 다.서비스 - hi 를 두 번 시작 합 니 다. 포트 는 각각 8762, 8773 입 니 다.
3. feign 서 비 스 를 만 들 고 spring - boot 프로젝트 를 새로 만 듭 니 다. serice - fegn 이 라 고 이름 을 지 었 습 니 다. pom 파일 에 Feign 의 시작 은 spring - cloud - starter - feign, Eureka 의 시작 은 spring - cloud - starter - eureka, 웹 의 시작 은 spring - boot - starter - web 에 의존 합 니 다. 코드 는 다음 과 같 습 니 다.
4.0.0
com.forezp
service-feign
0.0.1-SNAPSHOT
jar
service-feign
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
1.5.2.RELEASE
UTF-8
UTF-8
1.8
org.springframework.cloud
spring-cloud-starter-eureka
org.springframework.cloud
spring-cloud-starter-feign
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-dependencies
Dalston.RC1
pom
import
org.springframework.boot
spring-boot-maven-plugin
spring-milestones
Spring Milestones
https://repo.spring.io/milestone
false
프로젝트 의 프로필 application. yml 파일 에서 지정 한 프로그램 이름 은 service - fegn 이 고 포트 번 호 는 8765 이 며 서비스 등록 주 소 는?http://localhost:8761/eureka/ , 코드 는 다음 과 같 습 니 다:
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
server:
port: 8765
spring:
application:
name: service-feign
프로그램의 시작 클래스 ServiceFeignApplication 에 @ EnableFeignClient 주석 을 추가 하여 Feign 을 여 는 기능:
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class ServiceFeignApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceFeignApplication.class, args);
}
}
feign 인 터 페 이 스 를 정의 합 니 다. @ FeignClient ("서비스 이름") 를 통 해 어떤 서 비 스 를 호출 할 지 지정 합 니 다.예 를 들 어 코드 에서 서비스 - hi 서비스의 '/ hi' 인 터 페 이 스 를 호출 했 는데 코드 는 다음 과 같다.
/**
* Created by fangzhipeng on 2017/4/6.
*/
@FeignClient(value = "service-hi")
public interface SchedualServiceHi {
@RequestMapping(value = "/hi",method = RequestMethod.GET)
String sayHiFromClientOne(@RequestParam(value = "name") String name);
}
웹 층 의 controller 층 에 '/ hi' API 인 터 페 이 스 를 대외 적 으로 노출 하고 위 에서 정의 한 Feign 클 라 이언 트 Schedual ServiceHi 를 통 해 서 비 스 를 소비 합 니 다.코드 는 다음 과 같 습 니 다:
@RestController
public class HiController {
@Autowired
SchedualServiceHi schedualServiceHi;
@RequestMapping(value = "/hi",method = RequestMethod.GET)
public String sayHi(@RequestParam String name){
return schedualServiceHi.sayHiFromClientOne(name);
}
}
구조 코드 는 다음 과 같다.
Spring Cloud 대형 기업 분포 식 마이크로 서비스 클 라 우 드 구조 소스 코드
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring Cloud에서 Feign에 대한 일반적인 질문 요약1. FeignClient 인터페이스, @GettingMapping 같은 조합 메모는 사용할 수 없음 코드 예: 이쪽 @RequestMapping(value = "/simple/{id}", method = Reque...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.