반응형
간단하게 소개를 하면 다음과 같다.
- REST Call을 위해 호출하는 클라이언트를 보다 쉽게 작성할 수 있도록 도와주는 라이브러리
- OpenFeign은 동일한 기능을 하는 RestTemplate 대비 interface를 작성하고 annotation을 붙여주면 세부적인 내용 없이 사용할 수 있기 편리한 기능 제공
- Timeout 같은 간단한 기능은 Hystrix 연동없이 실패에 대한 Callback 함수 구현 가능
- spring-cloud-starter-openfeign 라이브러리 추가로 손쉽게 사용 가능
적용법
1. 먼저 openfeign library 를 추가한다.
- compile('org.springframework.cloud:spring-cloud-starter-openfeign’)
2. 다음은 main 함수에 사용한다는 annotation을 추가한다.
- @EnableFeignClients
3. REST call을 할 REST API에 대한 FeignClient Interface 작성한다.
@FeignClient(name = "feign", url = "http://127.0.0.1:8081/") public interface TestClient { @GetMapping("/testfeign") String testFeign(Person p); } |
이렇게 작성이 되면 testFeign 이라는 함수가 불려질때 http://127.0.0.1:8081/testfeign 으로 person 객체를 가지고 request를 보내게 된다.
4. 이어서 Interface call 실패에 대한 대안(fallback) 작성한다.
@Slf4j @Component public class TestClientFallbackFactory implements FallbackFactory<TestClient>{ @Override public TestClient create(Throwable cause) { return new TestClient() { @Override public void testFeign(Person p) { log.debug("test fallback"); } }; } } |
5. 마지막으로 application.properties(yml)에 Feign속성 추가한다.
- 속성 정보는 spring 공식 홈페이지를 참조 하면 도움이 될것이다.
- https://cloud.spring.io/spring-cloud-openfeign/reference/html/appendix.html
사용처
restful api 테스트로 많이 사용을 하기도 했으나 요즘엔 MSA 로 아키텍쳐가 변경이 되면서 서로 다른 MS에 request 와 response를 주고 받기 위해 많이 사용이 된다.
반응형
'IT > Java' 카테고리의 다른 글
LOG 란? (13) | 2023.02.05 |
---|---|
spring data jpa의 @Query nativeQuery의 IN 절 처리 (7) | 2023.02.03 |
java eclipse 에서 에러(The method METHOD is undefined for the type ) (9) | 2023.01.27 |
Tymeleaf 란? (7) | 2023.01.24 |
[JASYPT] 프로퍼티 암호화 (4) | 2023.01.23 |
댓글