WebClient&RestTemplate

Martin the dog·2024년 10월 18일

스프링 복습하기

목록 보기
15/15

둘다 Spring Boot Application에서 외부 url을 호출하는 기능이다. 하지만 RestTemplate과 WebClient에는 서로 다른 차이점들이 있다.

RestTemplate

특징: 동기적, HTTP 프로토콜 통신 지원, Restful 형식을 갖춤, JSon&Xml등 다양한 형태의 요청값을 처리할 수 있음, Header값 설정이 자유로움

예시코드

RestTemplate을 사용한 간단한 GET 요청 예시:

RestTemplate restTemplate = new RestTemplate();
String url = "https://api.example.com/data";
ResponseEntity<String> response = restTemplate.getForEntity(url, String.class);
String result = response.getBody();

여기서 goForEntity의 경우에는 url경로의 결과를 받아 String.class로 변환한다.

WebClient

특징: 비동기적, 반응형 프로그래밍 지원, HTTP와 WebSocket 프로토콜 지원, 더 적은 하드웨어 리소스로 동시성 처리 가능

예시코드

WebClient를 사용한 간단한 Get 요청 예시

Webclient webClient = WebClient.create("baseUrl");
ResponseEntity<String> result = webClient.get().uri("/{pathVar}",pathVar)
.retrieve()
.toEntity(변환할 클래스); 마지막에 block();으로 끝나면 비동기가 아니라 동기로 작업한다는 것을 알리는 것이다.
 

여기서 만약 webClient를 복제하고 싶다면 mutate.build()를 추가해주면 된다.

Webclient web2 = webClient.mutate().build();
profile
Happy Developer

0개의 댓글