Feign Client란
Feign
은 넷플릭스에서 개발한 웹 서비스 클라이언트 도구로 어노테이션을 템플릿화된 요청으로 처리해 동작하는 HTTP Client Binder
다.인터페이스를 만들고 어노테이션을 붙이는 방식이기 때문에 별도의 구현 클래스 작성없이 간단하게 사용할 수 있는 장점이 있다.
1. 의존성 주입
Feign
을 사용하기 위해서는 의존성 주입이 필요하다.
// maven
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign>/artifactId>
<version>2.1.3.RELEASE</version>
<dependency>
2. App.java에 @EnableFeignClients 의존성 추가
3. Feign Client 작성
Client
클래스 작성시 인터페이스로 작성하고 어노테이션은 @FeignClient(name="testfeign")
을 사용한다.
name
은 서비스 디스커버리를 사용할 경우 호출되는 마이크로 서비스 이름에 해당한다. 또한 가져와야하는 url
이나 configuration
이 필요하다면 작성해서 넣어주면 된다.
@FeignClient(name="testfeign", url="http://localhost:8000", configuration={FeignConfiguration.class})
public interface TestClient {
@GetMapping("/testfeign")
String test(@PathVariable("id) int id);
}
4.Client 호출
이제 서비스에서 해당 Client
만 주입해서 API
만 호출해주면 된다.
@Service
public class TestService {
@Autowired
TestClient testClient;
public String test(id) {
~~~
testClient.test(id);
~~~
}